Adds numbers example.

This commit is contained in:
Krunoslav Zaher 2015-12-06 20:33:50 +01:00
parent b08c1a5969
commit 8522d71b54
23 changed files with 546 additions and 257 deletions

View File

@ -398,6 +398,14 @@
C8BCD3C81C1468D4005F1280 /* ShareReplay1WhileConnected.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3C61C1468D4005F1280 /* ShareReplay1WhileConnected.swift */; }; C8BCD3C81C1468D4005F1280 /* ShareReplay1WhileConnected.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3C61C1468D4005F1280 /* ShareReplay1WhileConnected.swift */; };
C8BCD3C91C1468D4005F1280 /* ShareReplay1WhileConnected.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3C61C1468D4005F1280 /* ShareReplay1WhileConnected.swift */; }; C8BCD3C91C1468D4005F1280 /* ShareReplay1WhileConnected.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3C61C1468D4005F1280 /* ShareReplay1WhileConnected.swift */; };
C8BCD3CA1C1468D4005F1280 /* ShareReplay1WhileConnected.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3C61C1468D4005F1280 /* ShareReplay1WhileConnected.swift */; }; C8BCD3CA1C1468D4005F1280 /* ShareReplay1WhileConnected.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3C61C1468D4005F1280 /* ShareReplay1WhileConnected.swift */; };
C8BCD3ED1C14B5FB005F1280 /* UIView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3EC1C14B5FB005F1280 /* UIView+Rx.swift */; };
C8BCD3EF1C14B5FB005F1280 /* UIView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3EC1C14B5FB005F1280 /* UIView+Rx.swift */; };
C8BCD3F01C14B5FB005F1280 /* UIView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3EC1C14B5FB005F1280 /* UIView+Rx.swift */; };
C8BCD3F21C14B62B005F1280 /* NSView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3F11C14B62B005F1280 /* NSView+Rx.swift */; };
C8BCD3F41C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3F31C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift */; };
C8BCD3F51C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3F31C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift */; };
C8BCD3F61C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3F31C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift */; };
C8BCD3F71C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3F31C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift */; };
C8C3D9FE1B935EDF004D233E /* Zip+CollectionType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C3D9FD1B935EDF004D233E /* Zip+CollectionType.swift */; }; C8C3D9FE1B935EDF004D233E /* Zip+CollectionType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C3D9FD1B935EDF004D233E /* Zip+CollectionType.swift */; };
C8C3D9FF1B935EDF004D233E /* Zip+CollectionType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C3D9FD1B935EDF004D233E /* Zip+CollectionType.swift */; }; C8C3D9FF1B935EDF004D233E /* Zip+CollectionType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C3D9FD1B935EDF004D233E /* Zip+CollectionType.swift */; };
C8C3DA031B9390C4004D233E /* Just.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C3DA021B9390C4004D233E /* Just.swift */; }; C8C3DA031B9390C4004D233E /* Just.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C3DA021B9390C4004D233E /* Just.swift */; };
@ -1086,6 +1094,9 @@
C8B144FA1BD2D44500267DCE /* ConcurrentMainScheduler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConcurrentMainScheduler.swift; sourceTree = "<group>"; }; C8B144FA1BD2D44500267DCE /* ConcurrentMainScheduler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConcurrentMainScheduler.swift; sourceTree = "<group>"; };
C8B144FF1BD2D80100267DCE /* ImmediateScheduler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImmediateScheduler.swift; sourceTree = "<group>"; }; C8B144FF1BD2D80100267DCE /* ImmediateScheduler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImmediateScheduler.swift; sourceTree = "<group>"; };
C8BCD3C61C1468D4005F1280 /* ShareReplay1WhileConnected.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareReplay1WhileConnected.swift; sourceTree = "<group>"; }; C8BCD3C61C1468D4005F1280 /* ShareReplay1WhileConnected.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareReplay1WhileConnected.swift; sourceTree = "<group>"; };
C8BCD3EC1C14B5FB005F1280 /* UIView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIView+Rx.swift"; sourceTree = "<group>"; };
C8BCD3F11C14B62B005F1280 /* NSView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSView+Rx.swift"; sourceTree = "<group>"; };
C8BCD3F31C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSLayoutConstraint+Rx.swift"; sourceTree = "<group>"; };
C8C3D9FD1B935EDF004D233E /* Zip+CollectionType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Zip+CollectionType.swift"; sourceTree = "<group>"; }; C8C3D9FD1B935EDF004D233E /* Zip+CollectionType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Zip+CollectionType.swift"; sourceTree = "<group>"; };
C8C3DA021B9390C4004D233E /* Just.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Just.swift; sourceTree = "<group>"; }; C8C3DA021B9390C4004D233E /* Just.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Just.swift; sourceTree = "<group>"; };
C8C3DA051B9393AC004D233E /* Empty.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Empty.swift; sourceTree = "<group>"; }; C8C3DA051B9393AC004D233E /* Empty.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Empty.swift; sourceTree = "<group>"; };
@ -1454,6 +1465,7 @@
C8DB967D1BF7496C0084BD53 /* KVORepresentable.swift */, C8DB967D1BF7496C0084BD53 /* KVORepresentable.swift */,
C8DB96871BF756F40084BD53 /* KVORepresentable+CoreGraphics.swift */, C8DB96871BF756F40084BD53 /* KVORepresentable+CoreGraphics.swift */,
C8DB968C1BF7595D0084BD53 /* KVORepresentable+Swift.swift */, C8DB968C1BF7595D0084BD53 /* KVORepresentable+Swift.swift */,
C8BCD3F31C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift */,
); );
path = Common; path = Common;
sourceTree = "<group>"; sourceTree = "<group>";
@ -1500,6 +1512,7 @@
C8093EC81B8A732E0088E94D /* NSImageView+Rx.swift */, C8093EC81B8A732E0088E94D /* NSImageView+Rx.swift */,
C8093EC91B8A732E0088E94D /* NSSlider+Rx.swift */, C8093EC91B8A732E0088E94D /* NSSlider+Rx.swift */,
C8093ECA1B8A732E0088E94D /* NSTextField+Rx.swift */, C8093ECA1B8A732E0088E94D /* NSTextField+Rx.swift */,
C8BCD3F11C14B62B005F1280 /* NSView+Rx.swift */,
); );
path = OSX; path = OSX;
sourceTree = "<group>"; sourceTree = "<group>";
@ -1569,6 +1582,7 @@
C88254131B8A752B00B02D69 /* UITextField+Rx.swift */, C88254131B8A752B00B02D69 /* UITextField+Rx.swift */,
C88254141B8A752B00B02D69 /* UITextView+Rx.swift */, C88254141B8A752B00B02D69 /* UITextView+Rx.swift */,
9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */, 9BA1CBD11C0F7C0A0044B50A /* UIActivityIndicatorView+Rx.swift */,
C8BCD3EC1C14B5FB005F1280 /* UIView+Rx.swift */,
); );
path = iOS; path = iOS;
sourceTree = "<group>"; sourceTree = "<group>";
@ -2154,6 +2168,7 @@
C882541D1B8A752B00B02D69 /* RxAlertViewDelegateProxy.swift in Sources */, C882541D1B8A752B00B02D69 /* RxAlertViewDelegateProxy.swift in Sources */,
C80DDEA71BCE69BA006A1832 /* ObservableConvertibleType+Driver.swift in Sources */, C80DDEA71BCE69BA006A1832 /* ObservableConvertibleType+Driver.swift in Sources */,
C80DDE9F1BCE69BA006A1832 /* Driver+Subscription.swift in Sources */, C80DDE9F1BCE69BA006A1832 /* Driver+Subscription.swift in Sources */,
C8BCD3ED1C14B5FB005F1280 /* UIView+Rx.swift in Sources */,
C80D338F1B91EF9E0014629D /* Observable+Bind.swift in Sources */, C80D338F1B91EF9E0014629D /* Observable+Bind.swift in Sources */,
C88254311B8A752B00B02D69 /* UISegmentedControl+Rx.swift in Sources */, C88254311B8A752B00B02D69 /* UISegmentedControl+Rx.swift in Sources */,
C8093EED1B8A732E0088E94D /* KVOObservable.swift in Sources */, C8093EED1B8A732E0088E94D /* KVOObservable.swift in Sources */,
@ -2174,6 +2189,7 @@
C882542B1B8A752B00B02D69 /* UIDatePicker+Rx.swift in Sources */, C882542B1B8A752B00B02D69 /* UIDatePicker+Rx.swift in Sources */,
C88254221B8A752B00B02D69 /* RxTableViewDataSourceProxy.swift in Sources */, C88254221B8A752B00B02D69 /* RxTableViewDataSourceProxy.swift in Sources */,
C8093EDD1B8A732E0088E94D /* _RXSwizzling.m in Sources */, C8093EDD1B8A732E0088E94D /* _RXSwizzling.m in Sources */,
C8BCD3F41C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift in Sources */,
C8093EE91B8A732E0088E94D /* Deallocating.swift in Sources */, C8093EE91B8A732E0088E94D /* Deallocating.swift in Sources */,
C882542C1B8A752B00B02D69 /* UIGestureRecognizer+Rx.swift in Sources */, C882542C1B8A752B00B02D69 /* UIGestureRecognizer+Rx.swift in Sources */,
C8093EE11B8A732E0088E94D /* DelegateProxy.swift in Sources */, C8093EE11B8A732E0088E94D /* DelegateProxy.swift in Sources */,
@ -2213,6 +2229,7 @@
C80D33991B922FB00014629D /* ControlEvent.swift in Sources */, C80D33991B922FB00014629D /* ControlEvent.swift in Sources */,
C80DDEA81BCE69BA006A1832 /* ObservableConvertibleType+Driver.swift in Sources */, C80DDEA81BCE69BA006A1832 /* ObservableConvertibleType+Driver.swift in Sources */,
C80D339B1B922FB00014629D /* ControlProperty.swift in Sources */, C80D339B1B922FB00014629D /* ControlProperty.swift in Sources */,
C8BCD3F51C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift in Sources */,
C8093EF41B8A732E0088E94D /* NSObject+Rx+CoreGraphics.swift in Sources */, C8093EF41B8A732E0088E94D /* NSObject+Rx+CoreGraphics.swift in Sources */,
C8093EF01B8A732E0088E94D /* KVOObserver.swift in Sources */, C8093EF01B8A732E0088E94D /* KVOObserver.swift in Sources */,
C8093EEE1B8A732E0088E94D /* KVOObservable.swift in Sources */, C8093EEE1B8A732E0088E94D /* KVOObservable.swift in Sources */,
@ -2228,6 +2245,7 @@
C8093EDE1B8A732E0088E94D /* _RXSwizzling.m in Sources */, C8093EDE1B8A732E0088E94D /* _RXSwizzling.m in Sources */,
C80DDE941BCE69BA006A1832 /* ControlEvent+Driver.swift in Sources */, C80DDE941BCE69BA006A1832 /* ControlEvent+Driver.swift in Sources */,
C80DDEB21BCE8CA3006A1832 /* Driver+Operators+arity.swift in Sources */, C80DDEB21BCE8CA3006A1832 /* Driver+Operators+arity.swift in Sources */,
C8BCD3F21C14B62B005F1280 /* NSView+Rx.swift in Sources */,
C8093EEA1B8A732E0088E94D /* Deallocating.swift in Sources */, C8093EEA1B8A732E0088E94D /* Deallocating.swift in Sources */,
C8093EE21B8A732E0088E94D /* DelegateProxy.swift in Sources */, C8093EE21B8A732E0088E94D /* DelegateProxy.swift in Sources */,
C8093EFA1B8A732E0088E94D /* RxCLLocationManagerDelegateProxy.swift in Sources */, C8093EFA1B8A732E0088E94D /* RxCLLocationManagerDelegateProxy.swift in Sources */,
@ -2719,6 +2737,7 @@
C8F0C01E1BBBFBB9001B112F /* RxAlertViewDelegateProxy.swift in Sources */, C8F0C01E1BBBFBB9001B112F /* RxAlertViewDelegateProxy.swift in Sources */,
C80DDEAA1BCE69BA006A1832 /* ObservableConvertibleType+Driver.swift in Sources */, C80DDEAA1BCE69BA006A1832 /* ObservableConvertibleType+Driver.swift in Sources */,
C80DDEA21BCE69BA006A1832 /* Driver+Subscription.swift in Sources */, C80DDEA21BCE69BA006A1832 /* Driver+Subscription.swift in Sources */,
C8BCD3F01C14B5FB005F1280 /* UIView+Rx.swift in Sources */,
C8F0C01F1BBBFBB9001B112F /* Observable+Bind.swift in Sources */, C8F0C01F1BBBFBB9001B112F /* Observable+Bind.swift in Sources */,
C8F0C0201BBBFBB9001B112F /* UISegmentedControl+Rx.swift in Sources */, C8F0C0201BBBFBB9001B112F /* UISegmentedControl+Rx.swift in Sources */,
C8F0C0211BBBFBB9001B112F /* KVOObservable.swift in Sources */, C8F0C0211BBBFBB9001B112F /* KVOObservable.swift in Sources */,
@ -2739,6 +2758,7 @@
C8F0C02C1BBBFBB9001B112F /* UIDatePicker+Rx.swift in Sources */, C8F0C02C1BBBFBB9001B112F /* UIDatePicker+Rx.swift in Sources */,
C8F0C02D1BBBFBB9001B112F /* RxTableViewDataSourceProxy.swift in Sources */, C8F0C02D1BBBFBB9001B112F /* RxTableViewDataSourceProxy.swift in Sources */,
C8F0C02E1BBBFBB9001B112F /* _RXSwizzling.m in Sources */, C8F0C02E1BBBFBB9001B112F /* _RXSwizzling.m in Sources */,
C8BCD3F71C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift in Sources */,
C8F0C02F1BBBFBB9001B112F /* Deallocating.swift in Sources */, C8F0C02F1BBBFBB9001B112F /* Deallocating.swift in Sources */,
C8F0C0301BBBFBB9001B112F /* UIGestureRecognizer+Rx.swift in Sources */, C8F0C0301BBBFBB9001B112F /* UIGestureRecognizer+Rx.swift in Sources */,
C8F0C0311BBBFBB9001B112F /* DelegateProxy.swift in Sources */, C8F0C0311BBBFBB9001B112F /* DelegateProxy.swift in Sources */,
@ -2806,6 +2826,7 @@
C80DDEA91BCE69BA006A1832 /* ObservableConvertibleType+Driver.swift in Sources */, C80DDEA91BCE69BA006A1832 /* ObservableConvertibleType+Driver.swift in Sources */,
C80DDEA11BCE69BA006A1832 /* Driver+Subscription.swift in Sources */, C80DDEA11BCE69BA006A1832 /* Driver+Subscription.swift in Sources */,
D2138C891BB9BEBE00339B5C /* DelegateProxyType.swift in Sources */, D2138C891BB9BEBE00339B5C /* DelegateProxyType.swift in Sources */,
C8BCD3EF1C14B5FB005F1280 /* UIView+Rx.swift in Sources */,
D2138C921BB9BED600339B5C /* KVOObserver.swift in Sources */, D2138C921BB9BED600339B5C /* KVOObserver.swift in Sources */,
D2138C831BB9BEBE00339B5C /* _RXKVOObserver.m in Sources */, D2138C831BB9BEBE00339B5C /* _RXKVOObserver.m in Sources */,
C80DDEB31BCE8CA3006A1832 /* Driver+Operators+arity.swift in Sources */, C80DDEB31BCE8CA3006A1832 /* Driver+Operators+arity.swift in Sources */,
@ -2826,6 +2847,7 @@
D203C50A1BB9C53E00D02D00 /* UILabel+Rx.swift in Sources */, D203C50A1BB9C53E00D02D00 /* UILabel+Rx.swift in Sources */,
D2138C901BB9BED600339B5C /* DeinitAction.swift in Sources */, D2138C901BB9BED600339B5C /* DeinitAction.swift in Sources */,
D203C4F51BB9C52900D02D00 /* ItemEvents.swift in Sources */, D203C4F51BB9C52900D02D00 /* ItemEvents.swift in Sources */,
C8BCD3F61C14B6D1005F1280 /* NSLayoutConstraint+Rx.swift in Sources */,
D2138C911BB9BED600339B5C /* KVOObservable.swift in Sources */, D2138C911BB9BED600339B5C /* KVOObservable.swift in Sources */,
D203C4FA1BB9C53700D02D00 /* RxCollectionViewDataSourceProxy.swift in Sources */, D203C4FA1BB9C53700D02D00 /* RxCollectionViewDataSourceProxy.swift in Sources */,
D2138C7F1BB9BEBE00339B5C /* _RX.m in Sources */, D2138C7F1BB9BEBE00339B5C /* _RX.m in Sources */,

View File

@ -326,6 +326,17 @@
C8A7501F1B94E77C00D8D046 /* RxDataSourceStarterKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8A7501E1B94E77C00D8D046 /* RxDataSourceStarterKit.swift */; }; C8A7501F1B94E77C00D8D046 /* RxDataSourceStarterKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8A7501E1B94E77C00D8D046 /* RxDataSourceStarterKit.swift */; };
C8A750201B94E78200D8D046 /* RxDataSourceStarterKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8A7501E1B94E77C00D8D046 /* RxDataSourceStarterKit.swift */; }; C8A750201B94E78200D8D046 /* RxDataSourceStarterKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8A7501E1B94E77C00D8D046 /* RxDataSourceStarterKit.swift */; };
C8BCD3CE1C14756F005F1280 /* ShareReplay1WhileConnected.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3CD1C14756F005F1280 /* ShareReplay1WhileConnected.swift */; }; C8BCD3CE1C14756F005F1280 /* ShareReplay1WhileConnected.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3CD1C14756F005F1280 /* ShareReplay1WhileConnected.swift */; };
C8BCD3DC1C1480A9005F1280 /* GithubValidationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3DB1C1480A9005F1280 /* GithubValidationService.swift */; };
C8BCD3DD1C1480A9005F1280 /* GithubValidationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3DB1C1480A9005F1280 /* GithubValidationService.swift */; };
C8BCD3DF1C1480E9005F1280 /* Operators.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3DE1C1480E9005F1280 /* Operators.swift */; };
C8BCD3E01C1480E9005F1280 /* Operators.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3DE1C1480E9005F1280 /* Operators.swift */; };
C8BCD3E31C14820B005F1280 /* IntroductionExampleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3E21C14820B005F1280 /* IntroductionExampleViewController.swift */; };
C8BCD3E61C14A95E005F1280 /* NumbersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3E51C14A95E005F1280 /* NumbersViewController.swift */; };
C8BCD3E71C14A95E005F1280 /* NumbersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3E51C14A95E005F1280 /* NumbersViewController.swift */; };
C8BCD3EA1C14B02A005F1280 /* SimpleValidationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3E91C14B02A005F1280 /* SimpleValidationViewController.swift */; };
C8BCD3EB1C14B02A005F1280 /* SimpleValidationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3E91C14B02A005F1280 /* SimpleValidationViewController.swift */; };
C8BCD4021C14BFB7005F1280 /* NSLayoutConstraint+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD4011C14BFB7005F1280 /* NSLayoutConstraint+Rx.swift */; };
C8BCD4041C14BFCA005F1280 /* UIView+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD4031C14BFCA005F1280 /* UIView+Rx.swift */; };
C8C46DA81B47F7110020D71E /* CollectionViewImageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C46DA31B47F7110020D71E /* CollectionViewImageCell.swift */; }; C8C46DA81B47F7110020D71E /* CollectionViewImageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C46DA31B47F7110020D71E /* CollectionViewImageCell.swift */; };
C8C46DA91B47F7110020D71E /* WikipediaImageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C8C46DA41B47F7110020D71E /* WikipediaImageCell.xib */; }; C8C46DA91B47F7110020D71E /* WikipediaImageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C8C46DA41B47F7110020D71E /* WikipediaImageCell.xib */; };
C8C46DAA1B47F7110020D71E /* WikipediaSearchCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C46DA51B47F7110020D71E /* WikipediaSearchCell.swift */; }; C8C46DAA1B47F7110020D71E /* WikipediaSearchCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C46DA51B47F7110020D71E /* WikipediaSearchCell.swift */; };
@ -339,7 +350,6 @@
C8DF92E71B0B32F2009BCF9A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C8DF92E61B0B32F2009BCF9A /* Main.storyboard */; }; C8DF92E71B0B32F2009BCF9A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C8DF92E61B0B32F2009BCF9A /* Main.storyboard */; };
C8DF92EA1B0B38C0009BCF9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C8DF92E91B0B38C0009BCF9A /* Images.xcassets */; }; C8DF92EA1B0B38C0009BCF9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C8DF92E91B0B38C0009BCF9A /* Images.xcassets */; };
C8DF92EB1B0B38C0009BCF9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C8DF92E91B0B38C0009BCF9A /* Images.xcassets */; }; C8DF92EB1B0B38C0009BCF9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C8DF92E91B0B38C0009BCF9A /* Images.xcassets */; };
C8DF92F61B0B43A4009BCF9A /* IntroductionExampleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8DF92F51B0B43A4009BCF9A /* IntroductionExampleViewController.swift */; };
C8E9D2AF1BD3FD960079D0DB /* ActivityIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C80397391BD3E17D009D8B26 /* ActivityIndicator.swift */; }; C8E9D2AF1BD3FD960079D0DB /* ActivityIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C80397391BD3E17D009D8B26 /* ActivityIndicator.swift */; };
C8F6A1271BEF9DA3007DF367 /* AnonymousInvocable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8F6A1041BEF9D83007DF367 /* AnonymousInvocable.swift */; }; C8F6A1271BEF9DA3007DF367 /* AnonymousInvocable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8F6A1041BEF9D83007DF367 /* AnonymousInvocable.swift */; };
C8F6A1281BEF9DA3007DF367 /* InvocableScheduledItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8F6A1051BEF9D83007DF367 /* InvocableScheduledItem.swift */; }; C8F6A1281BEF9DA3007DF367 /* InvocableScheduledItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8F6A1051BEF9D83007DF367 /* InvocableScheduledItem.swift */; };
@ -746,6 +756,13 @@
C8B145041BD2E45200267DCE /* ImmediateScheduler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImmediateScheduler.swift; sourceTree = "<group>"; }; C8B145041BD2E45200267DCE /* ImmediateScheduler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImmediateScheduler.swift; sourceTree = "<group>"; };
C8B145051BD2E45200267DCE /* ConcurrentMainScheduler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConcurrentMainScheduler.swift; sourceTree = "<group>"; }; C8B145051BD2E45200267DCE /* ConcurrentMainScheduler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConcurrentMainScheduler.swift; sourceTree = "<group>"; };
C8BCD3CD1C14756F005F1280 /* ShareReplay1WhileConnected.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareReplay1WhileConnected.swift; sourceTree = "<group>"; }; C8BCD3CD1C14756F005F1280 /* ShareReplay1WhileConnected.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareReplay1WhileConnected.swift; sourceTree = "<group>"; };
C8BCD3DB1C1480A9005F1280 /* GithubValidationService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GithubValidationService.swift; sourceTree = "<group>"; };
C8BCD3DE1C1480E9005F1280 /* Operators.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Operators.swift; sourceTree = "<group>"; };
C8BCD3E21C14820B005F1280 /* IntroductionExampleViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IntroductionExampleViewController.swift; sourceTree = "<group>"; };
C8BCD3E51C14A95E005F1280 /* NumbersViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NumbersViewController.swift; sourceTree = "<group>"; };
C8BCD3E91C14B02A005F1280 /* SimpleValidationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SimpleValidationViewController.swift; sourceTree = "<group>"; };
C8BCD4011C14BFB7005F1280 /* NSLayoutConstraint+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSLayoutConstraint+Rx.swift"; sourceTree = "<group>"; };
C8BCD4031C14BFCA005F1280 /* UIView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIView+Rx.swift"; sourceTree = "<group>"; };
C8C46DA31B47F7110020D71E /* CollectionViewImageCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CollectionViewImageCell.swift; sourceTree = "<group>"; }; C8C46DA31B47F7110020D71E /* CollectionViewImageCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CollectionViewImageCell.swift; sourceTree = "<group>"; };
C8C46DA41B47F7110020D71E /* WikipediaImageCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = WikipediaImageCell.xib; sourceTree = "<group>"; }; C8C46DA41B47F7110020D71E /* WikipediaImageCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = WikipediaImageCell.xib; sourceTree = "<group>"; };
C8C46DA51B47F7110020D71E /* WikipediaSearchCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WikipediaSearchCell.swift; sourceTree = "<group>"; }; C8C46DA51B47F7110020D71E /* WikipediaSearchCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WikipediaSearchCell.swift; sourceTree = "<group>"; };
@ -760,7 +777,6 @@
C8DF92E91B0B38C0009BCF9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; }; C8DF92E91B0B38C0009BCF9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
C8DF92F01B0B3E67009BCF9A /* Info-OSX.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-OSX.plist"; sourceTree = "<group>"; }; C8DF92F01B0B3E67009BCF9A /* Info-OSX.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-OSX.plist"; sourceTree = "<group>"; };
C8DF92F21B0B3E71009BCF9A /* Info-iOS.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-iOS.plist"; sourceTree = "<group>"; }; C8DF92F21B0B3E71009BCF9A /* Info-iOS.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-iOS.plist"; sourceTree = "<group>"; };
C8DF92F51B0B43A4009BCF9A /* IntroductionExampleViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = IntroductionExampleViewController.swift; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
C8F6A1041BEF9D83007DF367 /* AnonymousInvocable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnonymousInvocable.swift; sourceTree = "<group>"; }; C8F6A1041BEF9D83007DF367 /* AnonymousInvocable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnonymousInvocable.swift; sourceTree = "<group>"; };
C8F6A1051BEF9D83007DF367 /* InvocableScheduledItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InvocableScheduledItem.swift; sourceTree = "<group>"; }; C8F6A1051BEF9D83007DF367 /* InvocableScheduledItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InvocableScheduledItem.swift; sourceTree = "<group>"; };
C8F6A1061BEF9D83007DF367 /* InvocableType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InvocableType.swift; sourceTree = "<group>"; }; C8F6A1061BEF9D83007DF367 /* InvocableType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InvocableType.swift; sourceTree = "<group>"; };
@ -835,32 +851,29 @@
name = UIKitExtensions; name = UIKitExtensions;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
075F130E1B4E9D10000D7861 /* 04 APIWrappers */ = { 075F130E1B4E9D10000D7861 /* APIWrappers */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
075F130F1B4E9D5A000D7861 /* APIWrappersViewController.swift */, 075F130F1B4E9D5A000D7861 /* APIWrappersViewController.swift */,
); );
name = "04 APIWrappers";
path = APIWrappers; path = APIWrappers;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
07A5C3D91B70B6B8001EFE5C /* 06 Calculator */ = { 07A5C3D91B70B6B8001EFE5C /* Calculator */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
07A5C3DA1B70B703001EFE5C /* CalculatorViewController.swift */, 07A5C3DA1B70B703001EFE5C /* CalculatorViewController.swift */,
); );
name = "06 Calculator";
path = Calculator; path = Calculator;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
07E300051B14994500F00100 /* 05 TableView */ = { 07E300051B14994500F00100 /* TableView */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
0706E1A01B1770C800BA2D3A /* RandomUserAPI */, 0706E1A01B1770C800BA2D3A /* RandomUserAPI */,
0706E1A11B1770D300BA2D3A /* Controllers */, 0706E1A11B1770D300BA2D3A /* Controllers */,
0706E1A21B1770E200BA2D3A /* UIKitExtensions */, 0706E1A21B1770E200BA2D3A /* UIKitExtensions */,
); );
name = "05 TableView";
path = TableView; path = TableView;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@ -928,6 +941,7 @@
C8DF92E91B0B38C0009BCF9A /* Images.xcassets */, C8DF92E91B0B38C0009BCF9A /* Images.xcassets */,
C86E2F2E1AE5A0CA00C31024 /* Examples */, C86E2F2E1AE5A0CA00C31024 /* Examples */,
C83367101AD029AE00C668A7 /* Services */, C83367101AD029AE00C668A7 /* Services */,
C8BCD3DE1C1480E9005F1280 /* Operators.swift */,
07E3C2321B03605B0010338D /* Dependencies.swift */, 07E3C2321B03605B0010338D /* Dependencies.swift */,
C890A65C1AEC084100AFF7E6 /* ViewController.swift */, C890A65C1AEC084100AFF7E6 /* ViewController.swift */,
C833670F1AD029AE00C668A7 /* Example.swift */, C833670F1AD029AE00C668A7 /* Example.swift */,
@ -974,40 +988,40 @@
name = NoModule; name = NoModule;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
C859B9A21B45C5D900D012D7 /* 07 PartialUpdates */ = { C859B9A21B45C5D900D012D7 /* PartialUpdates */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
C859B9A31B45C5D900D012D7 /* PartialUpdatesViewController.swift */, C859B9A31B45C5D900D012D7 /* PartialUpdatesViewController.swift */,
C859B9AB1B45CF9100D012D7 /* NumberCell.swift */, C859B9AB1B45CF9100D012D7 /* NumberCell.swift */,
C859B9AD1B45CFAB00D012D7 /* NumberSectionView.swift */, C859B9AD1B45CFAB00D012D7 /* NumberSectionView.swift */,
); );
name = "07 PartialUpdates";
path = PartialUpdates; path = PartialUpdates;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
C86E2F2E1AE5A0CA00C31024 /* Examples */ = { C86E2F2E1AE5A0CA00C31024 /* Examples */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
C8DF92F41B0B4392009BCF9A /* 01 Introduction */, C8BCD3E41C14A950005F1280 /* Numbers */,
C86E2F4C1AE5A10900C31024 /* 02 GitHubSignup */, C8BCD3E81C14B015005F1280 /* SimpleValidation */,
C86E2F301AE5A0CA00C31024 /* 03 WikipediaImageSearch */, C8BCD3E11C14820B005F1280 /* OSX simple example */,
075F130E1B4E9D10000D7861 /* 04 APIWrappers */, C86E2F4C1AE5A10900C31024 /* GitHubSignup */,
07E300051B14994500F00100 /* 05 TableView */, C86E2F301AE5A0CA00C31024 /* WikipediaImageSearch */,
07A5C3D91B70B6B8001EFE5C /* 06 Calculator */, 075F130E1B4E9D10000D7861 /* APIWrappers */,
C859B9A21B45C5D900D012D7 /* 07 PartialUpdates */, 07E300051B14994500F00100 /* TableView */,
EC91FB931BBA12E800973245 /* 08 AutoLoading */, 07A5C3D91B70B6B8001EFE5C /* Calculator */,
C859B9A21B45C5D900D012D7 /* PartialUpdates */,
EC91FB931BBA12E800973245 /* AutoLoading */,
); );
path = Examples; path = Examples;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
C86E2F301AE5A0CA00C31024 /* 03 WikipediaImageSearch */ = { C86E2F301AE5A0CA00C31024 /* WikipediaImageSearch */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
C86E2F311AE5A0CA00C31024 /* ViewModels */, C86E2F311AE5A0CA00C31024 /* ViewModels */,
C86E2F341AE5A0CA00C31024 /* Views */, C86E2F341AE5A0CA00C31024 /* Views */,
C86E2F3A1AE5A0CA00C31024 /* WikipediaAPI */, C86E2F3A1AE5A0CA00C31024 /* WikipediaAPI */,
); );
name = "03 WikipediaImageSearch";
path = WikipediaImageSearch; path = WikipediaImageSearch;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@ -1041,13 +1055,13 @@
path = WikipediaAPI; path = WikipediaAPI;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
C86E2F4C1AE5A10900C31024 /* 02 GitHubSignup */ = { C86E2F4C1AE5A10900C31024 /* GitHubSignup */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
C890A6571AEBD26B00AFF7E6 /* GitHubSignupViewController.swift */, C890A6571AEBD26B00AFF7E6 /* GitHubSignupViewController.swift */,
C890A6591AEBD28A00AFF7E6 /* GitHubAPI.swift */, C890A6591AEBD28A00AFF7E6 /* GitHubAPI.swift */,
C8BCD3DB1C1480A9005F1280 /* GithubValidationService.swift */,
); );
name = "02 GitHubSignup";
path = GitHubSignup; path = GitHubSignup;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@ -1306,6 +1320,7 @@
C894650D1BC6C2BC0055219D /* Common */ = { C894650D1BC6C2BC0055219D /* Common */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
C8BCD4011C14BFB7005F1280 /* NSLayoutConstraint+Rx.swift */,
C839740F1BF77406004F02CC /* KVORepresentable.swift */, C839740F1BF77406004F02CC /* KVORepresentable.swift */,
C83974101BF77406004F02CC /* KVORepresentable+CoreGraphics.swift */, C83974101BF77406004F02CC /* KVORepresentable+CoreGraphics.swift */,
C83974111BF77406004F02CC /* KVORepresentable+Swift.swift */, C83974111BF77406004F02CC /* KVORepresentable+Swift.swift */,
@ -1382,6 +1397,7 @@
C89465381BC6C2BC0055219D /* Events */, C89465381BC6C2BC0055219D /* Events */,
C894653A1BC6C2BC0055219D /* Protocols */, C894653A1BC6C2BC0055219D /* Protocols */,
C894653D1BC6C2BC0055219D /* Proxies */, C894653D1BC6C2BC0055219D /* Proxies */,
C8BCD4031C14BFCA005F1280 /* UIView+Rx.swift */,
C89465471BC6C2BC0055219D /* UIActionSheet+Rx.swift */, C89465471BC6C2BC0055219D /* UIActionSheet+Rx.swift */,
C89465481BC6C2BC0055219D /* UIAlertView+Rx.swift */, C89465481BC6C2BC0055219D /* UIAlertView+Rx.swift */,
C89465491BC6C2BC0055219D /* UIBarButtonItem+Rx.swift */, C89465491BC6C2BC0055219D /* UIBarButtonItem+Rx.swift */,
@ -1448,6 +1464,30 @@
path = Proxies; path = Proxies;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
C8BCD3E11C14820B005F1280 /* OSX simple example */ = {
isa = PBXGroup;
children = (
C8BCD3E21C14820B005F1280 /* IntroductionExampleViewController.swift */,
);
path = "OSX simple example";
sourceTree = "<group>";
};
C8BCD3E41C14A950005F1280 /* Numbers */ = {
isa = PBXGroup;
children = (
C8BCD3E51C14A95E005F1280 /* NumbersViewController.swift */,
);
path = Numbers;
sourceTree = "<group>";
};
C8BCD3E81C14B015005F1280 /* SimpleValidation */ = {
isa = PBXGroup;
children = (
C8BCD3E91C14B02A005F1280 /* SimpleValidationViewController.swift */,
);
path = SimpleValidation;
sourceTree = "<group>";
};
C8DF92C71B0B2F84009BCF9A /* iOS */ = { C8DF92C71B0B2F84009BCF9A /* iOS */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@ -1468,22 +1508,12 @@
path = OSX; path = OSX;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
C8DF92F41B0B4392009BCF9A /* 01 Introduction */ = { EC91FB931BBA12E800973245 /* AutoLoading */ = {
isa = PBXGroup;
children = (
C8DF92F51B0B43A4009BCF9A /* IntroductionExampleViewController.swift */,
);
name = "01 Introduction";
path = Introduction;
sourceTree = "<group>";
};
EC91FB931BBA12E800973245 /* 08 AutoLoading */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
EC91FB941BBA144400973245 /* GitHubSearchRepositoriesViewController.swift */, EC91FB941BBA144400973245 /* GitHubSearchRepositoriesViewController.swift */,
C80397481BD3E9A6009D8B26 /* GitHubSearchRepositoriesAPI.swift */, C80397481BD3E9A6009D8B26 /* GitHubSearchRepositoriesAPI.swift */,
); );
name = "08 AutoLoading";
path = AutoLoading; path = AutoLoading;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@ -1735,7 +1765,9 @@
C894650B1BC6C2B00055219D /* Variable.swift in Sources */, C894650B1BC6C2B00055219D /* Variable.swift in Sources */,
C8297E311B6CF905000589EA /* SearchResultViewModel.swift in Sources */, C8297E311B6CF905000589EA /* SearchResultViewModel.swift in Sources */,
C8F6A12D1BEF9DA3007DF367 /* CurrentThreadScheduler.swift in Sources */, C8F6A12D1BEF9DA3007DF367 /* CurrentThreadScheduler.swift in Sources */,
C8BCD3EB1C14B02A005F1280 /* SimpleValidationViewController.swift in Sources */,
C89464D91BC6C2B00055219D /* RefCount.swift in Sources */, C89464D91BC6C2B00055219D /* RefCount.swift in Sources */,
C8BCD3E71C14A95E005F1280 /* NumbersViewController.swift in Sources */,
C89465731BC6C2BC0055219D /* Deallocating.swift in Sources */, C89465731BC6C2BC0055219D /* Deallocating.swift in Sources */,
C8F6A1271BEF9DA3007DF367 /* AnonymousInvocable.swift in Sources */, C8F6A1271BEF9DA3007DF367 /* AnonymousInvocable.swift in Sources */,
C89464A51BC6C2B00055219D /* Disposable.swift in Sources */, C89464A51BC6C2B00055219D /* Disposable.swift in Sources */,
@ -1805,6 +1837,7 @@
C894657C1BC6C2BC0055219D /* RxCocoa.swift in Sources */, C894657C1BC6C2BC0055219D /* RxCocoa.swift in Sources */,
C894658F1BC6C2BC0055219D /* UIBarButtonItem+Rx.swift in Sources */, C894658F1BC6C2BC0055219D /* UIBarButtonItem+Rx.swift in Sources */,
C89464D61BC6C2B00055219D /* Producer.swift in Sources */, C89464D61BC6C2B00055219D /* Producer.swift in Sources */,
C8BCD4041C14BFCA005F1280 /* UIView+Rx.swift in Sources */,
C894658A1BC6C2BC0055219D /* RxTableViewDataSourceProxy.swift in Sources */, C894658A1BC6C2BC0055219D /* RxTableViewDataSourceProxy.swift in Sources */,
C894656F1BC6C2BC0055219D /* DelegateProxyType.swift in Sources */, C894656F1BC6C2BC0055219D /* DelegateProxyType.swift in Sources */,
C89465721BC6C2BC0055219D /* ControlTarget.swift in Sources */, C89465721BC6C2BC0055219D /* ControlTarget.swift in Sources */,
@ -1850,6 +1883,7 @@
CBEE77541BD8C7B700AD584C /* ToArray.swift in Sources */, CBEE77541BD8C7B700AD584C /* ToArray.swift in Sources */,
C89465771BC6C2BC0055219D /* NSNotificationCenter+Rx.swift in Sources */, C89465771BC6C2BC0055219D /* NSNotificationCenter+Rx.swift in Sources */,
C89465091BC6C2B00055219D /* ReplaySubject.swift in Sources */, C89465091BC6C2B00055219D /* ReplaySubject.swift in Sources */,
C8BCD3E01C1480E9005F1280 /* Operators.swift in Sources */,
C8F6A1281BEF9DA3007DF367 /* InvocableScheduledItem.swift in Sources */, C8F6A1281BEF9DA3007DF367 /* InvocableScheduledItem.swift in Sources */,
C8297E411B6CF905000589EA /* RxCollectionViewSectionedReloadDataSource.swift in Sources */, C8297E411B6CF905000589EA /* RxCollectionViewSectionedReloadDataSource.swift in Sources */,
C84CC58E1BDD486300E06A64 /* SynchronizedSubscribeType.swift in Sources */, C84CC58E1BDD486300E06A64 /* SynchronizedSubscribeType.swift in Sources */,
@ -1913,6 +1947,7 @@
C8F6A12A1BEF9DA3007DF367 /* ScheduledItemType.swift in Sources */, C8F6A12A1BEF9DA3007DF367 /* ScheduledItemType.swift in Sources */,
C8F6A1351BEF9DA3007DF367 /* SerialDispatchQueueScheduler.swift in Sources */, C8F6A1351BEF9DA3007DF367 /* SerialDispatchQueueScheduler.swift in Sources */,
C8297E4D1B6CF905000589EA /* RxTableViewSectionedReloadDataSource.swift in Sources */, C8297E4D1B6CF905000589EA /* RxTableViewSectionedReloadDataSource.swift in Sources */,
C8BCD3DD1C1480A9005F1280 /* GithubValidationService.swift in Sources */,
C89465931BC6C2BC0055219D /* UIDatePicker+Rx.swift in Sources */, C89465931BC6C2BC0055219D /* UIDatePicker+Rx.swift in Sources */,
C84CC58F1BDD486300E06A64 /* SynchronizedUnsubscribeType.swift in Sources */, C84CC58F1BDD486300E06A64 /* SynchronizedUnsubscribeType.swift in Sources */,
C8297E4E1B6CF905000589EA /* RxCollectionViewSectionedAnimatedDataSource.swift in Sources */, C8297E4E1B6CF905000589EA /* RxCollectionViewSectionedAnimatedDataSource.swift in Sources */,
@ -1934,6 +1969,7 @@
C803973B1BD3E17D009D8B26 /* ActivityIndicator.swift in Sources */, C803973B1BD3E17D009D8B26 /* ActivityIndicator.swift in Sources */,
C89464C61BC6C2B00055219D /* Deferred.swift in Sources */, C89464C61BC6C2B00055219D /* Deferred.swift in Sources */,
CB883B611BE3AC72000AC2EE /* AddRef.swift in Sources */, CB883B611BE3AC72000AC2EE /* AddRef.swift in Sources */,
C8BCD4021C14BFB7005F1280 /* NSLayoutConstraint+Rx.swift in Sources */,
D2AF91981BD3D95900A008C1 /* Using.swift in Sources */, D2AF91981BD3D95900A008C1 /* Using.swift in Sources */,
C8297E501B6CF905000589EA /* TableViewController.swift in Sources */, C8297E501B6CF905000589EA /* TableViewController.swift in Sources */,
C8297E511B6CF905000589EA /* PartialUpdatesViewController.swift in Sources */, C8297E511B6CF905000589EA /* PartialUpdatesViewController.swift in Sources */,
@ -1996,9 +2032,11 @@
0706E19D1B176EE200BA2D3A /* String+extensions.swift in Sources */, 0706E19D1B176EE200BA2D3A /* String+extensions.swift in Sources */,
C84B913B1B8A282000C9CCCF /* RxCollectionViewSectionedReloadDataSource.swift in Sources */, C84B913B1B8A282000C9CCCF /* RxCollectionViewSectionedReloadDataSource.swift in Sources */,
C88C78731B3EB0A00061C5AB /* SectionModel.swift in Sources */, C88C78731B3EB0A00061C5AB /* SectionModel.swift in Sources */,
C8BCD3DF1C1480E9005F1280 /* Operators.swift in Sources */,
C803973A1BD3E17D009D8B26 /* ActivityIndicator.swift in Sources */, C803973A1BD3E17D009D8B26 /* ActivityIndicator.swift in Sources */,
C84B913D1B8A282000C9CCCF /* RxCollectionViewSectionedAnimatedDataSource.swift in Sources */, C84B913D1B8A282000C9CCCF /* RxCollectionViewSectionedAnimatedDataSource.swift in Sources */,
C8A750201B94E78200D8D046 /* RxDataSourceStarterKit.swift in Sources */, C8A750201B94E78200D8D046 /* RxDataSourceStarterKit.swift in Sources */,
C8BCD3E61C14A95E005F1280 /* NumbersViewController.swift in Sources */,
C809E97A1BE6841C0058D948 /* Wireframe.swift in Sources */, C809E97A1BE6841C0058D948 /* Wireframe.swift in Sources */,
0706E1961B14AF5100BA2D3A /* DetailViewController.swift in Sources */, 0706E1961B14AF5100BA2D3A /* DetailViewController.swift in Sources */,
C88C78991B4012A90061C5AB /* SectionModelType.swift in Sources */, C88C78991B4012A90061C5AB /* SectionModelType.swift in Sources */,
@ -2019,6 +2057,7 @@
B1604CB51BE49F8D002E1279 /* DownloadableImage.swift in Sources */, B1604CB51BE49F8D002E1279 /* DownloadableImage.swift in Sources */,
075F13101B4E9D5A000D7861 /* APIWrappersViewController.swift in Sources */, 075F13101B4E9D5A000D7861 /* APIWrappersViewController.swift in Sources */,
07E300071B14995F00F00100 /* TableViewController.swift in Sources */, 07E300071B14995F00F00100 /* TableViewController.swift in Sources */,
C8BCD3DC1C1480A9005F1280 /* GithubValidationService.swift in Sources */,
B18F3BE21BDB2E8F000AAC79 /* ReachabilityService.swift in Sources */, B18F3BE21BDB2E8F000AAC79 /* ReachabilityService.swift in Sources */,
B18F3BBC1BD92EC8000AAC79 /* Reachability.swift in Sources */, B18F3BBC1BD92EC8000AAC79 /* Reachability.swift in Sources */,
C87335771BF7CC0B00E536E6 /* ObservableConvertibleType+Differentiator.swift in Sources */, C87335771BF7CC0B00E536E6 /* ObservableConvertibleType+Differentiator.swift in Sources */,
@ -2030,6 +2069,7 @@
C86E2F461AE5A0CA00C31024 /* WikipediaPage.swift in Sources */, C86E2F461AE5A0CA00C31024 /* WikipediaPage.swift in Sources */,
C809E97D1BE697100058D948 /* UIImage+Extensions.swift in Sources */, C809E97D1BE697100058D948 /* UIImage+Extensions.swift in Sources */,
C8A2A2CB1B404A1200F11F09 /* Randomizer.swift in Sources */, C8A2A2CB1B404A1200F11F09 /* Randomizer.swift in Sources */,
C8BCD3EA1C14B02A005F1280 /* SimpleValidationViewController.swift in Sources */,
07E300091B149A2A00F00100 /* User.swift in Sources */, 07E300091B149A2A00F00100 /* User.swift in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
@ -2038,6 +2078,7 @@
isa = PBXSourcesBuildPhase; isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
C8BCD3E31C14820B005F1280 /* IntroductionExampleViewController.swift in Sources */,
C809E97F1BE69B660058D948 /* Wireframe.swift in Sources */, C809E97F1BE69B660058D948 /* Wireframe.swift in Sources */,
C809E9841BE69C350058D948 /* Driver+Operators.swift in Sources */, C809E9841BE69C350058D948 /* Driver+Operators.swift in Sources */,
C8DF92DF1B0B328B009BCF9A /* AppDelegate.swift in Sources */, C8DF92DF1B0B328B009BCF9A /* AppDelegate.swift in Sources */,
@ -2053,7 +2094,6 @@
C809E9811BE69C310058D948 /* ControlEvent+Driver.swift in Sources */, C809E9811BE69C310058D948 /* ControlEvent+Driver.swift in Sources */,
C809E9831BE69C310058D948 /* Driver+Operators+arity.swift in Sources */, C809E9831BE69C310058D948 /* Driver+Operators+arity.swift in Sources */,
C88BB8BF1B07E6C90064D411 /* WikipediaSearchResult.swift in Sources */, C88BB8BF1B07E6C90064D411 /* WikipediaSearchResult.swift in Sources */,
C8DF92F61B0B43A4009BCF9A /* IntroductionExampleViewController.swift in Sources */,
B18F3BBF1BD93DFF000AAC79 /* Reachability.swift in Sources */, B18F3BBF1BD93DFF000AAC79 /* Reachability.swift in Sources */,
C88BB8C31B07E6C90064D411 /* Example.swift in Sources */, C88BB8C31B07E6C90064D411 /* Example.swift in Sources */,
C88BB8C41B07E6C90064D411 /* ViewController.swift in Sources */, C88BB8C41B07E6C90064D411 /* ViewController.swift in Sources */,

View File

@ -51,8 +51,6 @@ class APIWrappersViewController: ViewController {
@IBOutlet weak var mypan: UIPanGestureRecognizer! @IBOutlet weak var mypan: UIPanGestureRecognizer!
let disposeBag = DisposeBag()
let manager = CLLocationManager() let manager = CLLocationManager()
override func viewDidLoad() { override func viewDidLoad() {

View File

@ -49,7 +49,6 @@ class GitHubSearchRepositoriesViewController: ViewController, UITableViewDelegat
@IBOutlet weak var tableView: UITableView! @IBOutlet weak var tableView: UITableView!
@IBOutlet weak var searchBar: UISearchBar! @IBOutlet weak var searchBar: UISearchBar!
var disposeBag = DisposeBag()
let dataSource = RxTableViewSectionedReloadDataSource<SectionModel<String, Repository>>() let dataSource = RxTableViewSectionedReloadDataSource<SectionModel<String, Repository>>()
override func viewDidLoad() { override func viewDidLoad() {

View File

@ -67,8 +67,6 @@ class CalculatorViewController: ViewController {
let CLEAR_STATE = CalState(previousNumber: nil, action: .Clear, currentNumber: "0", inScreen: "0", replace: true) let CLEAR_STATE = CalState(previousNumber: nil, action: .Clear, currentNumber: "0", inScreen: "0", replace: true)
let disposeBag = DisposeBag()
override func viewDidLoad() { override func viewDidLoad() {
let commands:[Observable<Action>] = [ let commands:[Observable<Action>] = [
allClearButton.rx_tap.map { _ in .Clear }, allClearButton.rx_tap.map { _ in .Clear },

View File

@ -7,7 +7,11 @@
// //
import Foundation import Foundation
#if !RX_NO_MODULE
import RxSwift import RxSwift
#endif
typealias ValidationObservable = Observable<ValidationResult>
class ValidationService { class ValidationService {
let API: GitHubAPI let API: GitHubAPI

View File

@ -14,90 +14,6 @@ import RxCocoa
#endif #endif
typealias ValidationResult = (valid: Bool?, message: String?) typealias ValidationResult = (valid: Bool?, message: String?)
typealias ValidationObservable = Observable<ValidationResult>
// Two way binding operator between control property and variable, that's all it takes {
infix operator <-> {
}
func <-> <T>(property: ControlProperty<T>, variable: Variable<T>) -> Disposable {
let bindToUIDisposable = variable
.bindTo(property)
let bindToVariable = property
.subscribe(onNext: { n in
variable.value = n
}, onCompleted: {
bindToUIDisposable.dispose()
})
return StableCompositeDisposable.create(bindToUIDisposable, bindToVariable)
}
// }
class ValidationService {
let API: GitHubAPI
init (API: GitHubAPI) {
self.API = API
}
// validation
let minPasswordCount = 5
func validateUsername(username: String) -> ValidationObservable {
if username.characters.count == 0 {
return just((false, nil))
}
// this obviously won't be
if username.rangeOfCharacterFromSet(NSCharacterSet.alphanumericCharacterSet().invertedSet) != nil {
return just((false, "Username can only contain numbers or digits"))
}
let loadingValue = (valid: nil as Bool?, message: "Checking availabilty ..." as String?)
return API.usernameAvailable(username)
.map { available in
if available {
return (true, "Username available")
}
else {
return (false, "Username already taken")
}
}
.startWith(loadingValue)
}
func validatePassword(password: String) -> ValidationResult {
let numberOfCharacters = password.characters.count
if numberOfCharacters == 0 {
return (false, nil)
}
if numberOfCharacters < minPasswordCount {
return (false, "Password must be at least \(minPasswordCount) characters")
}
return (true, "Password acceptable")
}
func validateRepeatedPassword(password: String, repeatedPassword: String) -> ValidationResult {
if repeatedPassword.characters.count == 0 {
return (false, nil)
}
if repeatedPassword == password {
return (true, "Password repeated")
}
else {
return (false, "Password different")
}
}
}
class GitHubSignupViewController : ViewController { class GitHubSignupViewController : ViewController {
@IBOutlet weak var usernameOutlet: UITextField! @IBOutlet weak var usernameOutlet: UITextField!
@ -121,8 +37,6 @@ class GitHubSignupViewController : ViewController {
static let errorColor = UIColor.redColor() static let errorColor = UIColor.redColor()
} }
var disposeBag = DisposeBag()
let API = GitHubAPI( let API = GitHubAPI(
dataScheduler: MainScheduler.sharedInstance, dataScheduler: MainScheduler.sharedInstance,
URLSession: NSURLSession.sharedSession() URLSession: NSURLSession.sharedSession()

View File

@ -7,3 +7,27 @@
// //
import Foundation import Foundation
import UIKit
#if !RX_NO_MODULE
import RxSwift
import RxCocoa
#endif
class NumbersViewController: ViewController {
@IBOutlet weak var number1: UITextField!
@IBOutlet weak var number2: UITextField!
@IBOutlet weak var number3: UITextField!
@IBOutlet weak var result: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
combineLatest(number1.rx_text, number2.rx_text, number3.rx_text) { textValue1, textValue2, textValue3 -> Int in
return (Int(textValue1) ?? 0) + (Int(textValue2) ?? 0) + (Int(textValue3) ?? 0)
}
.map { $0.description }
.bindTo(result.rx_text)
.addDisposableTo(disposeBag)
}
}

View File

@ -21,8 +21,6 @@ class IntroductionExampleViewController : ViewController {
@IBOutlet var disposeButton: NSButton! @IBOutlet var disposeButton: NSButton!
var disposeBag = DisposeBag()
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()

View File

@ -49,8 +49,6 @@ class PartialUpdatesViewController : ViewController {
var sections = Variable([NumberSection]()) var sections = Variable([NumberSection]())
let disposeBag = DisposeBag()
func skinTableViewDataSource(dataSource: RxTableViewSectionedDataSource<NumberSection>) { func skinTableViewDataSource(dataSource: RxTableViewSectionedDataSource<NumberSection>) {
dataSource.cellFactory = { (tv, ip, i) in dataSource.cellFactory = { (tv, ip, i) in
let cell = tv.dequeueReusableCellWithIdentifier("Cell") let cell = tv.dequeueReusableCellWithIdentifier("Cell")

View File

@ -8,8 +8,10 @@
import Foundation import Foundation
import UIKit import UIKit
#if !RX_NO_MODULE
import RxSwift import RxSwift
import RxCocoa import RxCocoa
#endif
let mininalUsernameLength = 5 let mininalUsernameLength = 5
let mininalPasswordLength = 5 let mininalPasswordLength = 5

View File

@ -18,8 +18,6 @@ class DetailViewController: ViewController {
let $ = Dependencies.sharedDependencies let $ = Dependencies.sharedDependencies
var disposeBag = DisposeBag()
@IBOutlet weak var imageView: UIImageView! @IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var label: UILabel! @IBOutlet weak var label: UILabel!

View File

@ -17,8 +17,6 @@ class TableViewController: ViewController, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView! @IBOutlet weak var tableView: UITableView!
var disposeBag = DisposeBag()
let users = Variable([User]()) let users = Variable([User]())
let favoriteUsers = Variable([User]()) let favoriteUsers = Variable([User]())

View File

@ -14,8 +14,6 @@ import RxCocoa
class WikipediaSearchViewController: ViewController { class WikipediaSearchViewController: ViewController {
private var disposeBag = DisposeBag()
private var resultsTableView: UITableView { private var resultsTableView: UITableView {
return self.searchDisplayController!.searchResultsTableView return self.searchDisplayController!.searchResultsTableView
} }

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="8191" systemVersion="15A284" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS"> <document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="9060" systemVersion="15B42" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS">
<dependencies> <dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="8191"/> <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9060"/>
</dependencies> </dependencies>
<scenes> <scenes>
<!--Application--> <!--Application-->

View File

@ -7,3 +7,28 @@
// //
import Foundation import Foundation
#if !RX_NO_MODULE
import RxSwift
import RxCocoa
#endif
// Two way binding operator between control property and variable, that's all it takes {
infix operator <-> {
}
func <-> <T>(property: ControlProperty<T>, variable: Variable<T>) -> Disposable {
let bindToUIDisposable = variable
.bindTo(property)
let bindToVariable = property
.subscribe(onNext: { n in
variable.value = n
}, onCompleted: {
bindToUIDisposable.dispose()
})
return StableCompositeDisposable.create(bindToUIDisposable, bindToVariable)
}
// }

View File

@ -27,7 +27,9 @@ class ViewController: OSViewController {
private let startResourceCount = resourceCount private let startResourceCount = resourceCount
#endif #endif
#endif #endif
var disposeBag = DisposeBag()
override func viewDidLoad() { override func viewDidLoad() {
#if TRACE_RESOURCES #if TRACE_RESOURCES
print("Number of start resources = \(resourceCount)") print("Number of start resources = \(resourceCount)")

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9060" systemVersion="14F27" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="E5v-jn-n2n"> <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9060" systemVersion="15B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="E5v-jn-n2n">
<dependencies> <dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/>
<capability name="Aspect ratio constraints" minToolsVersion="5.1"/> <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
@ -24,6 +24,25 @@
</objects> </objects>
<point key="canvasLocation" x="-814.39999999999998" y="75.733333333333334"/> <point key="canvasLocation" x="-814.39999999999998" y="75.733333333333334"/>
</scene> </scene>
<!--Simple Validation View Controller-->
<scene sceneID="M9D-Xl-vEQ">
<objects>
<viewController id="hFV-LH-THc" customClass="SimpleValidationViewController" customModule="RxExample_iOS" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="fCf-hH-f2B"/>
<viewControllerLayoutGuide type="bottom" id="AE5-po-zjy"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="KQc-te-SbR">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<animations/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="fYF-0j-N0j" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-1067" y="748"/>
</scene>
<!--GitHub search--> <!--GitHub search-->
<scene sceneID="T9S-qN-XdP"> <scene sceneID="T9S-qN-XdP">
<objects> <objects>
@ -434,10 +453,44 @@
<animations/> <animations/>
<color key="backgroundColor" red="0.93725490196078431" green="0.93725490196078431" blue="0.95686274509803926" alpha="1" colorSpace="calibratedRGB"/> <color key="backgroundColor" red="0.93725490196078431" green="0.93725490196078431" blue="0.95686274509803926" alpha="1" colorSpace="calibratedRGB"/>
<sections> <sections>
<tableViewSection headerTitle="iPhone Examples" footerTitle="Showcase examples for Rx. You can easily test for proper resource cleanup during popping of the navigation stack" id="QC3-bK-dI7"> <tableViewSection footerTitle="Showcase examples for Rx. You can easily test for proper resource cleanup during popping of the navigation stack" id="Cvx-8U-SpN">
<cells/>
</tableViewSection>
<tableViewSection headerTitle="iPhone Examples" id="QC3-bK-dI7" userLabel="Simple iPhone Examples">
<cells> <cells>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="XlM-5z-et7" detailTextLabel="qzf-wg-hsM" style="IBUITableViewCellStyleSubtitle" id="zvA-oc-vHk">
<rect key="frame" x="0.0" y="197.5" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="zvA-oc-vHk" id="JoK-c2-Jg5">
<rect key="frame" x="0.0" y="0.0" width="287" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Adding numbers" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="XlM-5z-et7">
<rect key="frame" x="15" y="6" width="119.5" height="19.5"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Bindings" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="qzf-wg-hsM">
<rect key="frame" x="15" y="25.5" width="45.5" height="13.5"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="11"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<animations/>
</tableViewCellContentView>
<animations/>
<connections>
<segue destination="oOx-4m-jWT" kind="push" id="3HW-FS-2EI"/>
</connections>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="LN4-l3-ara" detailTextLabel="BaB-5r-hmY" style="IBUITableViewCellStyleSubtitle" id="Hab-23-dUs"> <tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="LN4-l3-ara" detailTextLabel="BaB-5r-hmY" style="IBUITableViewCellStyleSubtitle" id="Hab-23-dUs">
<rect key="frame" x="0.0" y="113.5" width="320" height="44"/> <rect key="frame" x="0.0" y="241.5" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Hab-23-dUs" id="5ox-J8-FhR"> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Hab-23-dUs" id="5ox-J8-FhR">
<rect key="frame" x="0.0" y="0.0" width="287" height="43.5"/> <rect key="frame" x="0.0" y="0.0" width="287" height="43.5"/>
@ -467,101 +520,8 @@
<segue destination="dHR-mS-HCG" kind="push" id="rAe-JJ-Q7U"/> <segue destination="dHR-mS-HCG" kind="push" id="rAe-JJ-Q7U"/>
</connections> </connections>
</tableViewCell> </tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="x4u-zK-muO" detailTextLabel="nuf-1K-ITV" style="IBUITableViewCellStyleSubtitle" id="HTx-Ei-Vlj">
<rect key="frame" x="0.0" y="157.5" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="HTx-Ei-Vlj" id="kc9-g3-Zfl">
<rect key="frame" x="0.0" y="0.0" width="287" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Master Detail &amp; reactive DataSource" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="x4u-zK-muO">
<rect key="frame" x="15" y="6" width="262.5" height="19.5"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Table View Master Detail Example" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="nuf-1K-ITV">
<rect key="frame" x="15" y="25.5" width="177" height="13.5"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="11"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<animations/>
</tableViewCellContentView>
<animations/>
<connections>
<segue destination="bZo-ey-Nha" kind="push" id="S82-xv-fWe"/>
</connections>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="ufL-YX-dKF" detailTextLabel="efq-eT-ETM" style="IBUITableViewCellStyleSubtitle" id="Egb-OL-S5e">
<rect key="frame" x="0.0" y="201.5" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Egb-OL-S5e" id="Y1z-Y7-dLh">
<rect key="frame" x="0.0" y="0.0" width="287" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Calculator" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="ufL-YX-dKF">
<rect key="frame" x="15" y="6" width="74" height="19.5"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Stateless calculator example" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="efq-eT-ETM">
<rect key="frame" x="15" y="25.5" width="150.5" height="13.5"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="11"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<animations/>
</tableViewCellContentView>
<animations/>
<connections>
<segue destination="ErT-E8-uY3" kind="push" id="3is-Gn-lDH"/>
</connections>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="pxT-4B-gDc" detailTextLabel="xZJ-Xt-MqD" style="IBUITableViewCellStyleSubtitle" id="yAf-eB-mRo">
<rect key="frame" x="0.0" y="245.5" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="yAf-eB-mRo" id="M3Y-AJ-f8i">
<rect key="frame" x="0.0" y="0.0" width="287" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Search Wikipedia" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="pxT-4B-gDc">
<rect key="frame" x="15" y="6" width="126" height="19.5"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Complex async, activity indicator" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="xZJ-Xt-MqD">
<rect key="frame" x="15" y="25.5" width="173.5" height="13.5"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="11"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<animations/>
</tableViewCellContentView>
<animations/>
<connections>
<segue destination="Iwo-im-m6d" kind="push" identifier="ShowWikipediaSearch" id="Gfh-zm-u0w"/>
</connections>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="siT-mr-b8A" detailTextLabel="BSH-sG-bpY" style="IBUITableViewCellStyleSubtitle" id="VBq-7j-4vQ"> <tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="siT-mr-b8A" detailTextLabel="BSH-sG-bpY" style="IBUITableViewCellStyleSubtitle" id="VBq-7j-4vQ">
<rect key="frame" x="0.0" y="289.5" width="320" height="44"/> <rect key="frame" x="0.0" y="285.5" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="VBq-7j-4vQ" id="m7h-NW-UnD"> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="VBq-7j-4vQ" id="m7h-NW-UnD">
<rect key="frame" x="0.0" y="0.0" width="287" height="43.5"/> <rect key="frame" x="0.0" y="0.0" width="287" height="43.5"/>
@ -591,8 +551,109 @@
<segue destination="J6V-0T-aRq" kind="push" id="jyD-mL-MWs"/> <segue destination="J6V-0T-aRq" kind="push" id="jyD-mL-MWs"/>
</connections> </connections>
</tableViewCell> </tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="ufL-YX-dKF" detailTextLabel="efq-eT-ETM" style="IBUITableViewCellStyleSubtitle" id="Egb-OL-S5e">
<rect key="frame" x="0.0" y="329.5" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Egb-OL-S5e" id="Y1z-Y7-dLh">
<rect key="frame" x="0.0" y="0.0" width="287" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Calculator" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="ufL-YX-dKF">
<rect key="frame" x="15" y="6" width="74" height="19.5"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Stateless calculator example" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="efq-eT-ETM">
<rect key="frame" x="15" y="25.5" width="150.5" height="13.5"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="11"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<animations/>
</tableViewCellContentView>
<animations/>
<connections>
<segue destination="ErT-E8-uY3" kind="push" id="3is-Gn-lDH"/>
</connections>
</tableViewCell>
</cells>
</tableViewSection>
<tableViewSection headerTitle="Table/Collection view examples" id="guj-4N-WZg" userLabel="TableView/CollectionView example">
<cells>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="x4u-zK-muO" detailTextLabel="nuf-1K-ITV" style="IBUITableViewCellStyleSubtitle" id="HTx-Ei-Vlj">
<rect key="frame" x="0.0" y="415.5" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="HTx-Ei-Vlj" id="kc9-g3-Zfl">
<rect key="frame" x="0.0" y="0.0" width="287" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Master Detail &amp; reactive DataSource" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="x4u-zK-muO">
<rect key="frame" x="15" y="6" width="262.5" height="19.5"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Table View Master Detail Example" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="nuf-1K-ITV">
<rect key="frame" x="15" y="25.5" width="177" height="13.5"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="11"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<animations/>
</tableViewCellContentView>
<animations/>
<connections>
<segue destination="bZo-ey-Nha" kind="push" id="S82-xv-fWe"/>
</connections>
</tableViewCell>
</cells>
</tableViewSection>
<tableViewSection headerTitle="Complex examples" id="lxd-sR-NIF" userLabel="Complex examples">
<cells>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="pxT-4B-gDc" detailTextLabel="xZJ-Xt-MqD" style="IBUITableViewCellStyleSubtitle" id="yAf-eB-mRo">
<rect key="frame" x="0.0" y="501.5" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="yAf-eB-mRo" id="M3Y-AJ-f8i">
<rect key="frame" x="0.0" y="0.0" width="287" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Search Wikipedia" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="pxT-4B-gDc">
<rect key="frame" x="15" y="6" width="126" height="19.5"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Complex async, activity indicator" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="xZJ-Xt-MqD">
<rect key="frame" x="15" y="25.5" width="173.5" height="13.5"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="11"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<animations/>
</tableViewCellContentView>
<animations/>
<connections>
<segue destination="Iwo-im-m6d" kind="push" identifier="ShowWikipediaSearch" id="Gfh-zm-u0w"/>
</connections>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="8FC-s3-ejV" detailTextLabel="ECT-7x-66c" style="IBUITableViewCellStyleSubtitle" id="0Xj-JL-bdb"> <tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="8FC-s3-ejV" detailTextLabel="ECT-7x-66c" style="IBUITableViewCellStyleSubtitle" id="0Xj-JL-bdb">
<rect key="frame" x="0.0" y="333.5" width="320" height="44"/> <rect key="frame" x="0.0" y="545.5" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="0Xj-JL-bdb" id="buE-3J-RLs"> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="0Xj-JL-bdb" id="buE-3J-RLs">
<rect key="frame" x="0.0" y="0.0" width="287" height="43.5"/> <rect key="frame" x="0.0" y="0.0" width="287" height="43.5"/>
@ -627,7 +688,7 @@
<tableViewSection headerTitle="iPad Examples" footerTitle="Showcase examples for Rx. You can easily test for proper resource cleanup during popping of the navigation stack" id="dLK-dJ-eIx"> <tableViewSection headerTitle="iPad Examples" footerTitle="Showcase examples for Rx. You can easily test for proper resource cleanup during popping of the navigation stack" id="dLK-dJ-eIx">
<cells> <cells>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="vX5-dK-JyH" detailTextLabel="Ilb-8Z-x8X" style="IBUITableViewCellStyleSubtitle" id="i2V-3v-lig"> <tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="vX5-dK-JyH" detailTextLabel="Ilb-8Z-x8X" style="IBUITableViewCellStyleSubtitle" id="i2V-3v-lig">
<rect key="frame" x="0.0" y="476" width="320" height="44"/> <rect key="frame" x="0.0" y="631.5" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="i2V-3v-lig" id="ysT-9y-Klh"> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="i2V-3v-lig" id="ysT-9y-Klh">
<rect key="frame" x="0.0" y="0.0" width="287" height="43.5"/> <rect key="frame" x="0.0" y="0.0" width="287" height="43.5"/>
@ -819,6 +880,7 @@ This is only showcase app, not intended for production purposes.</string>
</button> </button>
<activityIndicatorView hidden="YES" opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" hidesWhenStopped="YES" style="gray" translatesAutoresizingMaskIntoConstraints="NO" id="dBZ-FL-vel"> <activityIndicatorView hidden="YES" opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" hidesWhenStopped="YES" style="gray" translatesAutoresizingMaskIntoConstraints="NO" id="dBZ-FL-vel">
<rect key="frame" x="161" y="78" width="20" height="20"/> <rect key="frame" x="161" y="78" width="20" height="20"/>
<animations/>
</activityIndicatorView> </activityIndicatorView>
</subviews> </subviews>
<animations/> <animations/>
@ -853,6 +915,102 @@ This is only showcase app, not intended for production purposes.</string>
</objects> </objects>
<point key="canvasLocation" x="151" y="1665"/> <point key="canvasLocation" x="151" y="1665"/>
</scene> </scene>
<!--Adding numbers-->
<scene sceneID="kWE-M1-vba">
<objects>
<viewController id="oOx-4m-jWT" customClass="NumbersViewController" customModule="RxExample_iOS" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Cig-h0-trg"/>
<viewControllerLayoutGuide type="bottom" id="lrM-CT-cyf"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="Seh-9R-sJD">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="1" borderStyle="roundedRect" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="f0C-TG-nVm">
<rect key="frame" x="111.5" y="193" width="97" height="30"/>
<animations/>
<constraints>
<constraint firstAttribute="width" constant="97" id="5so-5k-9SN"/>
<constraint firstAttribute="height" constant="30" id="uQc-3n-2WC"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits"/>
</textField>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="2" borderStyle="roundedRect" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="RDN-19-Rfe">
<rect key="frame" x="111.5" y="231" width="97" height="30"/>
<animations/>
<constraints>
<constraint firstAttribute="width" constant="97" id="W9o-Z8-3Fv"/>
<constraint firstAttribute="height" constant="30" id="ag2-xt-JFN"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits"/>
</textField>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="3" borderStyle="roundedRect" textAlignment="right" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="bP3-QH-gOb">
<rect key="frame" x="111.5" y="269" width="97" height="30"/>
<animations/>
<constraints>
<constraint firstAttribute="width" constant="97" id="UPC-TK-dBW"/>
<constraint firstAttribute="height" constant="30" id="tUW-LN-iap"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits"/>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="+" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="X9s-MA-NXj">
<rect key="frame" x="92.5" y="273.5" width="11" height="20.5"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Phk-y9-qRO" userLabel="Separator">
<rect key="frame" x="92.5" y="307" width="116" height="1"/>
<animations/>
<color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="N45-Bh-4fc"/>
<constraint firstAttribute="width" constant="116" id="NcW-2q-3Yo"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="-1" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PJD-Yg-D6c">
<rect key="frame" x="92.5" y="316" width="116" height="20.5"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<animations/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="bP3-QH-gOb" firstAttribute="centerY" secondItem="Seh-9R-sJD" secondAttribute="centerY" id="6Bc-ai-QXi"/>
<constraint firstItem="RDN-19-Rfe" firstAttribute="top" secondItem="f0C-TG-nVm" secondAttribute="bottom" constant="8" id="AMN-jK-1QL"/>
<constraint firstItem="bP3-QH-gOb" firstAttribute="trailing" secondItem="RDN-19-Rfe" secondAttribute="trailing" id="Fj3-pm-L4N"/>
<constraint firstItem="PJD-Yg-D6c" firstAttribute="leading" secondItem="Phk-y9-qRO" secondAttribute="leading" id="Lkp-hr-GLb"/>
<constraint firstItem="PJD-Yg-D6c" firstAttribute="trailing" secondItem="Phk-y9-qRO" secondAttribute="trailing" id="OkI-5F-A8c"/>
<constraint firstItem="Phk-y9-qRO" firstAttribute="trailing" secondItem="bP3-QH-gOb" secondAttribute="trailing" id="RJi-N8-Rqz"/>
<constraint firstItem="bP3-QH-gOb" firstAttribute="centerX" secondItem="Seh-9R-sJD" secondAttribute="centerX" id="SL6-f3-Vz3"/>
<constraint firstItem="RDN-19-Rfe" firstAttribute="trailing" secondItem="f0C-TG-nVm" secondAttribute="trailing" id="hkf-3b-Ogb"/>
<constraint firstItem="Phk-y9-qRO" firstAttribute="top" secondItem="bP3-QH-gOb" secondAttribute="bottom" constant="8" id="mU4-lk-Unq"/>
<constraint firstItem="X9s-MA-NXj" firstAttribute="centerY" secondItem="bP3-QH-gOb" secondAttribute="centerY" id="oGg-4n-cna"/>
<constraint firstItem="bP3-QH-gOb" firstAttribute="top" secondItem="RDN-19-Rfe" secondAttribute="bottom" constant="8" id="vCv-Hz-Bx7"/>
<constraint firstItem="bP3-QH-gOb" firstAttribute="leading" secondItem="X9s-MA-NXj" secondAttribute="trailing" constant="8" id="wpa-lv-qp5"/>
<constraint firstItem="PJD-Yg-D6c" firstAttribute="top" secondItem="Phk-y9-qRO" secondAttribute="bottom" constant="8" id="y47-kq-bRv"/>
</constraints>
</view>
<navigationItem key="navigationItem" title="Adding numbers" id="AVl-Ce-Uct"/>
<connections>
<outlet property="number1" destination="f0C-TG-nVm" id="DeO-fx-KHN"/>
<outlet property="number2" destination="RDN-19-Rfe" id="U9U-2m-wPq"/>
<outlet property="number3" destination="bP3-QH-gOb" id="66w-lF-Db1"/>
<outlet property="result" destination="PJD-Yg-D6c" id="Fn5-wX-r2C"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="meV-AH-8TC" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="692" y="340"/>
</scene>
<!--Calculator--> <!--Calculator-->
<scene sceneID="Xfe-3i-xhv"> <scene sceneID="Xfe-3i-xhv">
<objects> <objects>

View File

@ -14,21 +14,17 @@ import XCTest
extension ControlTests { extension ControlTests {
func testSubscribeEnabledToTrue() { func testSubscribeEnabledToTrue() {
let subject = UIControl() let subject = UIControl()
let enabledSequence = Variable<Bool>(false) let disposable = just(true).subscribe(subject.rx_enabled)
let disposable = enabledSequence.subscribe(subject.rx_enabled)
defer { disposable.dispose() } defer { disposable.dispose() }
enabledSequence.value = true
XCTAssert(subject.enabled == true, "Expected enabled set to true") XCTAssert(subject.enabled == true, "Expected enabled set to true")
} }
func testSubscribeEnabledToFalse() { func testSubscribeEnabledToFalse() {
let subject = UIControl() let subject = UIControl()
let enabledSequence = Variable<Bool>(true) let disposable = just(false).subscribe(subject.rx_enabled)
let disposable = enabledSequence.subscribe(subject.rx_enabled)
defer { disposable.dispose() } defer { disposable.dispose() }
enabledSequence.value = false
XCTAssert(subject.enabled == false, "Expected enabled set to false") XCTAssert(subject.enabled == false, "Expected enabled set to false")
} }
} }

View File

@ -7,3 +7,37 @@
// //
import Foundation import Foundation
import RxSwift
import RxCocoa
import XCTest
#if os(OSX)
import Cocoa
typealias View = NSView
#else
import UIKit
typealias View = UIView
#endif
class NSLayoutConstraintTest : RxTest {
}
extension NSLayoutConstraintTest {
func testConstant_0() {
let subject = View(frame: CGRect.zero)
let subject2 = View(frame: CGRect.zero)
let constraint = NSLayoutConstraint(item: subject, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: subject2, attribute: NSLayoutAttribute.Top, multiplier: 0.5, constant: 0.5)
just(0).subscribe(constraint.rx_constant).dispose()
XCTAssertTrue(constraint.constant == 0.0)
}
func testConstant_1() {
let subject = View(frame: CGRect.zero)
let subject2 = View(frame: CGRect.zero)
let constraint = NSLayoutConstraint(item: subject, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: subject2, attribute: NSLayoutAttribute.Top, multiplier: 0.5, constant: 0.5)
just(1.0).subscribe(constraint.rx_constant).dispose()
XCTAssertTrue(constraint.constant == 1.0)
}
}

View File

@ -7,3 +7,42 @@
// //
import Foundation import Foundation
import RxSwift
import RxCocoa
import Cocoa
import XCTest
class NSViewTests : RxTest {
}
extension NSViewTests {
func testHidden_True() {
let subject = NSView(frame: CGRect.zero)
just(true).subscribe(subject.rx_hidden).dispose()
XCTAssertTrue(subject.hidden == true)
}
func testHidden_False() {
let subject = NSView(frame: CGRect.zero)
just(false).subscribe(subject.rx_hidden).dispose()
XCTAssertTrue(subject.hidden == false)
}
}
extension NSViewTests {
func testAlpha_0() {
let subject = NSView(frame: CGRect.zero)
just(0).subscribe(subject.rx_alpha).dispose()
XCTAssertTrue(subject.alphaValue == 0.0)
}
func testAlpha_1() {
let subject = NSView(frame: CGRect.zero)
just(1).subscribe(subject.rx_alpha).dispose()
XCTAssertTrue(subject.alphaValue == 1.0)
}
}

View File

@ -7,3 +7,43 @@
// //
import Foundation import Foundation
import RxSwift
import RxCocoa
import UIKit
import XCTest
class UIViewTests : RxTest {
}
extension UIViewTests {
func testHidden_True() {
let subject = UIView(frame: CGRect.zero)
just(true).subscribe(subject.rx_hidden).dispose()
XCTAssertTrue(subject.hidden == true)
}
func testEnabled_False() {
let subject = UIView(frame: CGRect.zero)
just(false).subscribe(subject.rx_hidden).dispose()
XCTAssertTrue(subject.hidden == false)
}
}
extension UIViewTests {
func testAlpha_0() {
let subject = UIView(frame: CGRect.zero)
just(0).subscribe(subject.rx_alpha).dispose()
XCTAssertTrue(subject.alpha == 0.0)
}
func testAlpha_1() {
let subject = UIView(frame: CGRect.zero)
just(1).subscribe(subject.rx_alpha).dispose()
XCTAssertTrue(subject.alpha == 1.0)
}
}

View File

@ -44,7 +44,6 @@
C81108681AF50E2A001C13E4 /* QueueTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C811084B1AF50E2A001C13E4 /* QueueTests.swift */; }; C81108681AF50E2A001C13E4 /* QueueTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C811084B1AF50E2A001C13E4 /* QueueTests.swift */; };
C81108691AF50E2A001C13E4 /* RxTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C811084C1AF50E2A001C13E4 /* RxTest.swift */; }; C81108691AF50E2A001C13E4 /* RxTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C811084C1AF50E2A001C13E4 /* RxTest.swift */; };
C814CEA31AF5622600E98087 /* VariableTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C814CEA21AF5622600E98087 /* VariableTest.swift */; }; C814CEA31AF5622600E98087 /* VariableTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C814CEA21AF5622600E98087 /* VariableTest.swift */; };
C814CEA71AF642D600E98087 /* UI+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C814CEA61AF642D600E98087 /* UI+RxTests.swift */; };
C81CC92B1B513FD400915606 /* NSObject+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C81CC92A1B513FD400915606 /* NSObject+RxTests.swift */; }; C81CC92B1B513FD400915606 /* NSObject+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C81CC92A1B513FD400915606 /* NSObject+RxTests.swift */; };
C81CC92C1B513FD400915606 /* NSObject+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C81CC92A1B513FD400915606 /* NSObject+RxTests.swift */; }; C81CC92C1B513FD400915606 /* NSObject+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C81CC92A1B513FD400915606 /* NSObject+RxTests.swift */; };
C836EA011B8A76A900AB941D /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C836EA001B8A76A900AB941D /* RxSwift.framework */; }; C836EA011B8A76A900AB941D /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C836EA001B8A76A900AB941D /* RxSwift.framework */; };
@ -79,7 +78,6 @@
C88BB8951B07E64B0064D411 /* TestObservable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C81108361AF50E2A001C13E4 /* TestObservable.swift */; }; C88BB8951B07E64B0064D411 /* TestObservable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C81108361AF50E2A001C13E4 /* TestObservable.swift */; };
C88BB8961B07E64B0064D411 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = C811083D1AF50E2A001C13E4 /* Subscription.swift */; }; C88BB8961B07E64B0064D411 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = C811083D1AF50E2A001C13E4 /* Subscription.swift */; };
C88BB8971B07E64B0064D411 /* MySubject.swift in Sources */ = {isa = PBXBuildFile; fileRef = C81108341AF50E2A001C13E4 /* MySubject.swift */; }; C88BB8971B07E64B0064D411 /* MySubject.swift in Sources */ = {isa = PBXBuildFile; fileRef = C81108341AF50E2A001C13E4 /* MySubject.swift */; };
C88BB8981B07E64B0064D411 /* UI+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C814CEA61AF642D600E98087 /* UI+RxTests.swift */; };
C88BB8991B07E64B0064D411 /* Observable+BindingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C81108441AF50E2A001C13E4 /* Observable+BindingTest.swift */; }; C88BB8991B07E64B0064D411 /* Observable+BindingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C81108441AF50E2A001C13E4 /* Observable+BindingTest.swift */; };
C88BB89A1B07E64B0064D411 /* NSNotificationCenterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C811082B1AF50E2A001C13E4 /* NSNotificationCenterTests.swift */; }; C88BB89A1B07E64B0064D411 /* NSNotificationCenterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C811082B1AF50E2A001C13E4 /* NSNotificationCenterTests.swift */; };
C88BB89B1B07E64B0064D411 /* Observable+MultipleTest+CombineLatest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C81108451AF50E2A001C13E4 /* Observable+MultipleTest+CombineLatest.swift */; }; C88BB89B1B07E64B0064D411 /* Observable+MultipleTest+CombineLatest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C81108451AF50E2A001C13E4 /* Observable+MultipleTest+CombineLatest.swift */; };
@ -115,10 +113,15 @@
C8A468CF1B8A897D00BF917B /* RxBlocking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C8A468CE1B8A897D00BF917B /* RxBlocking.framework */; }; C8A468CF1B8A897D00BF917B /* RxBlocking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C8A468CE1B8A897D00BF917B /* RxBlocking.framework */; };
C8A468D01B8A899C00BF917B /* RxBlocking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C8A468CE1B8A897D00BF917B /* RxBlocking.framework */; }; C8A468D01B8A899C00BF917B /* RxBlocking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C8A468CE1B8A897D00BF917B /* RxBlocking.framework */; };
C8A468D11B8A899C00BF917B /* RxCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C8A468CC1B8A897800BF917B /* RxCocoa.framework */; }; C8A468D11B8A899C00BF917B /* RxCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C8A468CC1B8A897800BF917B /* RxCocoa.framework */; };
C8B5BEA11B4A6A82000D732C /* RxCocoaTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8B5BEA01B4A6A82000D732C /* RxCocoaTests.swift */; };
C8B605EC1B6260A10044410E /* AnonymousObservable+Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8B605EB1B6260A10044410E /* AnonymousObservable+Test.swift */; }; C8B605EC1B6260A10044410E /* AnonymousObservable+Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8B605EB1B6260A10044410E /* AnonymousObservable+Test.swift */; };
C8B605ED1B6260A10044410E /* AnonymousObservable+Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8B605EB1B6260A10044410E /* AnonymousObservable+Test.swift */; }; C8B605ED1B6260A10044410E /* AnonymousObservable+Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8B605EB1B6260A10044410E /* AnonymousObservable+Test.swift */; };
C8B787FA1AF55CDE00206D02 /* Observable+ConcurrencyTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8B787F91AF55CDE00206D02 /* Observable+ConcurrencyTest.swift */; }; C8B787FA1AF55CDE00206D02 /* Observable+ConcurrencyTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8B787F91AF55CDE00206D02 /* Observable+ConcurrencyTest.swift */; };
C8BCD3F91C14B901005F1280 /* UIView+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3F81C14B901005F1280 /* UIView+RxTests.swift */; };
C8BCD3FA1C14B901005F1280 /* UIView+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3F81C14B901005F1280 /* UIView+RxTests.swift */; };
C8BCD3FC1C14B914005F1280 /* NSView+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3FB1C14B914005F1280 /* NSView+RxTests.swift */; };
C8BCD3FE1C14BCAD005F1280 /* NSLayoutConstraint+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3FD1C14BCAD005F1280 /* NSLayoutConstraint+RxTests.swift */; };
C8BCD3FF1C14BCAD005F1280 /* NSLayoutConstraint+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3FD1C14BCAD005F1280 /* NSLayoutConstraint+RxTests.swift */; };
C8BCD4001C14BCAD005F1280 /* NSLayoutConstraint+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8BCD3FD1C14BCAD005F1280 /* NSLayoutConstraint+RxTests.swift */; };
C8CDD7D41B52BEC40043F0C5 /* Observable+BlockingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8CDD7D31B52BEC40043F0C5 /* Observable+BlockingTest.swift */; }; C8CDD7D41B52BEC40043F0C5 /* Observable+BlockingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8CDD7D31B52BEC40043F0C5 /* Observable+BlockingTest.swift */; };
C8CDD7D51B52BEC40043F0C5 /* Observable+BlockingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8CDD7D31B52BEC40043F0C5 /* Observable+BlockingTest.swift */; }; C8CDD7D51B52BEC40043F0C5 /* Observable+BlockingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8CDD7D31B52BEC40043F0C5 /* Observable+BlockingTest.swift */; };
C8E381231B2063CC008CDC33 /* Observable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8E381221B2063CC008CDC33 /* Observable+Extensions.swift */; }; C8E381231B2063CC008CDC33 /* Observable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8E381221B2063CC008CDC33 /* Observable+Extensions.swift */; };
@ -140,9 +143,7 @@
C8FDC5F81B2B5B7E0065F8D9 /* ElementIndexPair.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8FDC5F71B2B5B7E0065F8D9 /* ElementIndexPair.swift */; }; C8FDC5F81B2B5B7E0065F8D9 /* ElementIndexPair.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8FDC5F71B2B5B7E0065F8D9 /* ElementIndexPair.swift */; };
C8FDC5F91B2B5B7E0065F8D9 /* ElementIndexPair.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8FDC5F71B2B5B7E0065F8D9 /* ElementIndexPair.swift */; }; C8FDC5F91B2B5B7E0065F8D9 /* ElementIndexPair.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8FDC5F71B2B5B7E0065F8D9 /* ElementIndexPair.swift */; };
D203C4EB1BB9C22800D02D00 /* NSNotificationCenterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C811082B1AF50E2A001C13E4 /* NSNotificationCenterTests.swift */; }; D203C4EB1BB9C22800D02D00 /* NSNotificationCenterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C811082B1AF50E2A001C13E4 /* NSNotificationCenterTests.swift */; };
D203C4EC1BB9C22800D02D00 /* UI+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C814CEA61AF642D600E98087 /* UI+RxTests.swift */; };
D203C4EE1BB9C22800D02D00 /* KVOObservableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8633AE41B0A9FF300375D60 /* KVOObservableTests.swift */; }; D203C4EE1BB9C22800D02D00 /* KVOObservableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8633AE41B0A9FF300375D60 /* KVOObservableTests.swift */; };
D203C4EF1BB9C22800D02D00 /* RxCocoaTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8B5BEA01B4A6A82000D732C /* RxCocoaTests.swift */; };
D203C4F01BB9C22800D02D00 /* NSObject+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C81CC92A1B513FD400915606 /* NSObject+RxTests.swift */; }; D203C4F01BB9C22800D02D00 /* NSObject+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C81CC92A1B513FD400915606 /* NSObject+RxTests.swift */; };
D203C5141BB9C54A00D02D00 /* Control+RxTests+UIKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E5D10BA1B48355200432B25 /* Control+RxTests+UIKit.swift */; }; D203C5141BB9C54A00D02D00 /* Control+RxTests+UIKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E5D10BA1B48355200432B25 /* Control+RxTests+UIKit.swift */; };
D251ED291BB9BF90002D0E36 /* RxCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C8A468CC1B8A897800BF917B /* RxCocoa.framework */; }; D251ED291BB9BF90002D0E36 /* RxCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C8A468CC1B8A897800BF917B /* RxCocoa.framework */; };
@ -227,7 +228,6 @@
C811084B1AF50E2A001C13E4 /* QueueTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QueueTests.swift; sourceTree = "<group>"; }; C811084B1AF50E2A001C13E4 /* QueueTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QueueTests.swift; sourceTree = "<group>"; };
C811084C1AF50E2A001C13E4 /* RxTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxTest.swift; sourceTree = SOURCE_ROOT; }; C811084C1AF50E2A001C13E4 /* RxTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxTest.swift; sourceTree = SOURCE_ROOT; };
C814CEA21AF5622600E98087 /* VariableTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VariableTest.swift; sourceTree = "<group>"; }; C814CEA21AF5622600E98087 /* VariableTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VariableTest.swift; sourceTree = "<group>"; };
C814CEA61AF642D600E98087 /* UI+RxTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UI+RxTests.swift"; sourceTree = "<group>"; };
C81CC92A1B513FD400915606 /* NSObject+RxTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSObject+RxTests.swift"; sourceTree = "<group>"; }; C81CC92A1B513FD400915606 /* NSObject+RxTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSObject+RxTests.swift"; sourceTree = "<group>"; };
C836EA001B8A76A900AB941D /* RxSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = RxSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C836EA001B8A76A900AB941D /* RxSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = RxSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C84B8FC11B89D0D500C9CCCF /* BagTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BagTest.swift; sourceTree = "<group>"; }; C84B8FC11B89D0D500C9CCCF /* BagTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BagTest.swift; sourceTree = "<group>"; };
@ -252,9 +252,11 @@
C89CDB951BCDA1F1002063D9 /* Observable+SubscriptionTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Observable+SubscriptionTest.swift"; sourceTree = "<group>"; }; C89CDB951BCDA1F1002063D9 /* Observable+SubscriptionTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Observable+SubscriptionTest.swift"; sourceTree = "<group>"; };
C8A468CC1B8A897800BF917B /* RxCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = RxCocoa.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C8A468CC1B8A897800BF917B /* RxCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = RxCocoa.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C8A468CE1B8A897D00BF917B /* RxBlocking.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = RxBlocking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C8A468CE1B8A897D00BF917B /* RxBlocking.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = RxBlocking.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C8B5BEA01B4A6A82000D732C /* RxCocoaTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxCocoaTests.swift; sourceTree = "<group>"; };
C8B605EB1B6260A10044410E /* AnonymousObservable+Test.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AnonymousObservable+Test.swift"; sourceTree = "<group>"; }; C8B605EB1B6260A10044410E /* AnonymousObservable+Test.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AnonymousObservable+Test.swift"; sourceTree = "<group>"; };
C8B787F91AF55CDE00206D02 /* Observable+ConcurrencyTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = "Observable+ConcurrencyTest.swift"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; C8B787F91AF55CDE00206D02 /* Observable+ConcurrencyTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = "Observable+ConcurrencyTest.swift"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
C8BCD3F81C14B901005F1280 /* UIView+RxTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIView+RxTests.swift"; sourceTree = "<group>"; };
C8BCD3FB1C14B914005F1280 /* NSView+RxTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSView+RxTests.swift"; sourceTree = "<group>"; };
C8BCD3FD1C14BCAD005F1280 /* NSLayoutConstraint+RxTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSLayoutConstraint+RxTests.swift"; sourceTree = "<group>"; };
C8CDD7D31B52BEC40043F0C5 /* Observable+BlockingTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = "Observable+BlockingTest.swift"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; C8CDD7D31B52BEC40043F0C5 /* Observable+BlockingTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = "Observable+BlockingTest.swift"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
C8E381221B2063CC008CDC33 /* Observable+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Observable+Extensions.swift"; sourceTree = "<group>"; }; C8E381221B2063CC008CDC33 /* Observable+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Observable+Extensions.swift"; sourceTree = "<group>"; };
C8E381271B207D03008CDC33 /* PrimitiveHotObservable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrimitiveHotObservable.swift; sourceTree = "<group>"; }; C8E381271B207D03008CDC33 /* PrimitiveHotObservable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrimitiveHotObservable.swift; sourceTree = "<group>"; };
@ -368,10 +370,11 @@
C8633AE41B0A9FF300375D60 /* KVOObservableTests.swift */, C8633AE41B0A9FF300375D60 /* KVOObservableTests.swift */,
C811082B1AF50E2A001C13E4 /* NSNotificationCenterTests.swift */, C811082B1AF50E2A001C13E4 /* NSNotificationCenterTests.swift */,
C81CC92A1B513FD400915606 /* NSObject+RxTests.swift */, C81CC92A1B513FD400915606 /* NSObject+RxTests.swift */,
C8B5BEA01B4A6A82000D732C /* RxCocoaTests.swift */,
C814CEA61AF642D600E98087 /* UI+RxTests.swift */,
C87BB6B61C13A64000C66DF9 /* ControlPropertyTests.swift */, C87BB6B61C13A64000C66DF9 /* ControlPropertyTests.swift */,
C87BB6BA1C13A75600C66DF9 /* ControlEventTests.swift */, C87BB6BA1C13A75600C66DF9 /* ControlEventTests.swift */,
C8BCD3F81C14B901005F1280 /* UIView+RxTests.swift */,
C8BCD3FB1C14B914005F1280 /* NSView+RxTests.swift */,
C8BCD3FD1C14BCAD005F1280 /* NSLayoutConstraint+RxTests.swift */,
); );
path = RxCocoaTests; path = RxCocoaTests;
sourceTree = SOURCE_ROOT; sourceTree = SOURCE_ROOT;
@ -631,10 +634,10 @@
C811085B1AF50E2A001C13E4 /* Subscription.swift in Sources */, C811085B1AF50E2A001C13E4 /* Subscription.swift in Sources */,
C80DDEDC1BCE9A03006A1832 /* Driver+Test.swift in Sources */, C80DDEDC1BCE9A03006A1832 /* Driver+Test.swift in Sources */,
C81108531AF50E2A001C13E4 /* MySubject.swift in Sources */, C81108531AF50E2A001C13E4 /* MySubject.swift in Sources */,
C814CEA71AF642D600E98087 /* UI+RxTests.swift in Sources */,
C81108611AF50E2A001C13E4 /* Observable+BindingTest.swift in Sources */, C81108611AF50E2A001C13E4 /* Observable+BindingTest.swift in Sources */,
C69B65001BA88FAC00A7FA73 /* ObserverTests.swift in Sources */, C69B65001BA88FAC00A7FA73 /* ObserverTests.swift in Sources */,
C85F4E431B7F70EA00A866C7 /* CompositeObserverTest.swift in Sources */, C85F4E431B7F70EA00A866C7 /* CompositeObserverTest.swift in Sources */,
C8BCD3F91C14B901005F1280 /* UIView+RxTests.swift in Sources */,
C811084D1AF50E2A001C13E4 /* NSNotificationCenterTests.swift in Sources */, C811084D1AF50E2A001C13E4 /* NSNotificationCenterTests.swift in Sources */,
C81108621AF50E2A001C13E4 /* Observable+MultipleTest+CombineLatest.swift in Sources */, C81108621AF50E2A001C13E4 /* Observable+MultipleTest+CombineLatest.swift in Sources */,
C811085E1AF50E2A001C13E4 /* ConcurrencyTest.swift in Sources */, C811085E1AF50E2A001C13E4 /* ConcurrencyTest.swift in Sources */,
@ -649,6 +652,7 @@
C8F6A1411BEFE04F007DF367 /* SubjectConcurrencyTest.swift in Sources */, C8F6A1411BEFE04F007DF367 /* SubjectConcurrencyTest.swift in Sources */,
C80DDEE01BCEE898006A1832 /* MainThreadPrimitiveHotObservable.swift in Sources */, C80DDEE01BCEE898006A1832 /* MainThreadPrimitiveHotObservable.swift in Sources */,
C87BB6BB1C13A75600C66DF9 /* ControlEventTests.swift in Sources */, C87BB6BB1C13A75600C66DF9 /* ControlEventTests.swift in Sources */,
C8BCD3FE1C14BCAD005F1280 /* NSLayoutConstraint+RxTests.swift in Sources */,
C81108641AF50E2A001C13E4 /* Observable+MultipleTest.swift in Sources */, C81108641AF50E2A001C13E4 /* Observable+MultipleTest.swift in Sources */,
C811084F1AF50E2A001C13E4 /* ColdObservable.swift in Sources */, C811084F1AF50E2A001C13E4 /* ColdObservable.swift in Sources */,
C8FDC5F81B2B5B7E0065F8D9 /* ElementIndexPair.swift in Sources */, C8FDC5F81B2B5B7E0065F8D9 /* ElementIndexPair.swift in Sources */,
@ -674,7 +678,6 @@
C811085D1AF50E2A001C13E4 /* AssumptionsTest.swift in Sources */, C811085D1AF50E2A001C13E4 /* AssumptionsTest.swift in Sources */,
C81108501AF50E2A001C13E4 /* TestConnectableObservable.swift in Sources */, C81108501AF50E2A001C13E4 /* TestConnectableObservable.swift in Sources */,
C814CEA31AF5622600E98087 /* VariableTest.swift in Sources */, C814CEA31AF5622600E98087 /* VariableTest.swift in Sources */,
C8B5BEA11B4A6A82000D732C /* RxCocoaTests.swift in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -700,7 +703,6 @@
C868D0FA1BB76A29003D1474 /* PerformanceTools.swift in Sources */, C868D0FA1BB76A29003D1474 /* PerformanceTools.swift in Sources */,
C88BB8971B07E64B0064D411 /* MySubject.swift in Sources */, C88BB8971B07E64B0064D411 /* MySubject.swift in Sources */,
C87BB6BC1C13A75600C66DF9 /* ControlEventTests.swift in Sources */, C87BB6BC1C13A75600C66DF9 /* ControlEventTests.swift in Sources */,
C88BB8981B07E64B0064D411 /* UI+RxTests.swift in Sources */,
C88BB8991B07E64B0064D411 /* Observable+BindingTest.swift in Sources */, C88BB8991B07E64B0064D411 /* Observable+BindingTest.swift in Sources */,
C88BB89A1B07E64B0064D411 /* NSNotificationCenterTests.swift in Sources */, C88BB89A1B07E64B0064D411 /* NSNotificationCenterTests.swift in Sources */,
C88BB89B1B07E64B0064D411 /* Observable+MultipleTest+CombineLatest.swift in Sources */, C88BB89B1B07E64B0064D411 /* Observable+MultipleTest+CombineLatest.swift in Sources */,
@ -723,10 +725,12 @@
C89CDB971BCDA1F1002063D9 /* Observable+SubscriptionTest.swift in Sources */, C89CDB971BCDA1F1002063D9 /* Observable+SubscriptionTest.swift in Sources */,
C88BB8A31B07E64B0064D411 /* HotObservable.swift in Sources */, C88BB8A31B07E64B0064D411 /* HotObservable.swift in Sources */,
C8FDC5F91B2B5B7E0065F8D9 /* ElementIndexPair.swift in Sources */, C8FDC5F91B2B5B7E0065F8D9 /* ElementIndexPair.swift in Sources */,
C8BCD3FF1C14BCAD005F1280 /* NSLayoutConstraint+RxTests.swift in Sources */,
C88BB8A41B07E64B0064D411 /* Observable.Extensions.swift in Sources */, C88BB8A41B07E64B0064D411 /* Observable.Extensions.swift in Sources */,
C868D0F71BB75EAE003D1474 /* RxTest.swift in Sources */, C868D0F71BB75EAE003D1474 /* RxTest.swift in Sources */,
C84B8FC31B89D0D500C9CCCF /* BagTest.swift in Sources */, C84B8FC31B89D0D500C9CCCF /* BagTest.swift in Sources */,
C87BB6B81C13A64000C66DF9 /* ControlPropertyTests.swift in Sources */, C87BB6B81C13A64000C66DF9 /* ControlPropertyTests.swift in Sources */,
C8BCD3FC1C14B914005F1280 /* NSView+RxTests.swift in Sources */,
C897EC3C1B10E000009C2CB0 /* BehaviorSubjectTest.swift in Sources */, C897EC3C1B10E000009C2CB0 /* BehaviorSubjectTest.swift in Sources */,
C88BB8A51B07E64B0064D411 /* QueueTests.swift in Sources */, C88BB8A51B07E64B0064D411 /* QueueTests.swift in Sources */,
C8E3812C1B2083C2008CDC33 /* PrimitiveMockObserver.swift in Sources */, C8E3812C1B2083C2008CDC33 /* PrimitiveMockObserver.swift in Sources */,
@ -762,7 +766,6 @@
C89CDB981BCDA1F1002063D9 /* Observable+SubscriptionTest.swift in Sources */, C89CDB981BCDA1F1002063D9 /* Observable+SubscriptionTest.swift in Sources */,
C87BB6B91C13A64000C66DF9 /* ControlPropertyTests.swift in Sources */, C87BB6B91C13A64000C66DF9 /* ControlPropertyTests.swift in Sources */,
D2EBEB6F1BB9B7EF003A27DC /* Observable+CreationTest.swift in Sources */, D2EBEB6F1BB9B7EF003A27DC /* Observable+CreationTest.swift in Sources */,
D203C4EC1BB9C22800D02D00 /* UI+RxTests.swift in Sources */,
D2EBEB591BB9B7CC003A27DC /* TestObserver.swift in Sources */, D2EBEB591BB9B7CC003A27DC /* TestObserver.swift in Sources */,
D2EBEB5E1BB9B7D8003A27DC /* VirtualTimeSchedulerBase.swift in Sources */, D2EBEB5E1BB9B7D8003A27DC /* VirtualTimeSchedulerBase.swift in Sources */,
C80DDEDE1BCE9A03006A1832 /* Driver+Test.swift in Sources */, C80DDEDE1BCE9A03006A1832 /* Driver+Test.swift in Sources */,
@ -771,6 +774,7 @@
D2EBEB791BB9B7FD003A27DC /* RxTest.swift in Sources */, D2EBEB791BB9B7FD003A27DC /* RxTest.swift in Sources */,
D2EBEB6E1BB9B7EF003A27DC /* Observable+ConcurrencyTest.swift in Sources */, D2EBEB6E1BB9B7EF003A27DC /* Observable+ConcurrencyTest.swift in Sources */,
D2EBEB541BB9B7CC003A27DC /* HotObservable.swift in Sources */, D2EBEB541BB9B7CC003A27DC /* HotObservable.swift in Sources */,
C8BCD3FA1C14B901005F1280 /* UIView+RxTests.swift in Sources */,
D2EBEB5D1BB9B7D6003A27DC /* TestScheduler.swift in Sources */, D2EBEB5D1BB9B7D6003A27DC /* TestScheduler.swift in Sources */,
D2EBEB6B1BB9B7EF003A27DC /* Observable+AggregateTest.swift in Sources */, D2EBEB6B1BB9B7EF003A27DC /* Observable+AggregateTest.swift in Sources */,
D2EBEB751BB9B7F9003A27DC /* Observable+TimeTest.swift in Sources */, D2EBEB751BB9B7F9003A27DC /* Observable+TimeTest.swift in Sources */,
@ -785,6 +789,7 @@
D2EBEB731BB9B7F9003A27DC /* Observable+SingleTest.swift in Sources */, D2EBEB731BB9B7F9003A27DC /* Observable+SingleTest.swift in Sources */,
C8F6A1431BEFE04F007DF367 /* SubjectConcurrencyTest.swift in Sources */, C8F6A1431BEFE04F007DF367 /* SubjectConcurrencyTest.swift in Sources */,
C87BB6BD1C13A75600C66DF9 /* ControlEventTests.swift in Sources */, C87BB6BD1C13A75600C66DF9 /* ControlEventTests.swift in Sources */,
C8BCD4001C14BCAD005F1280 /* NSLayoutConstraint+RxTests.swift in Sources */,
C80DDEE21BCEE898006A1832 /* MainThreadPrimitiveHotObservable.swift in Sources */, C80DDEE21BCEE898006A1832 /* MainThreadPrimitiveHotObservable.swift in Sources */,
D2EBEB6C1BB9B7EF003A27DC /* Observable+BindingTest.swift in Sources */, D2EBEB6C1BB9B7EF003A27DC /* Observable+BindingTest.swift in Sources */,
D2EBEB621BB9B7E5003A27DC /* ElementIndexPair.swift in Sources */, D2EBEB621BB9B7E5003A27DC /* ElementIndexPair.swift in Sources */,
@ -801,7 +806,6 @@
D2AF919A1BD3D9C700A008C1 /* MockDisposable.swift in Sources */, D2AF919A1BD3D9C700A008C1 /* MockDisposable.swift in Sources */,
D2EBEB761BB9B7F9003A27DC /* QueueTests.swift in Sources */, D2EBEB761BB9B7F9003A27DC /* QueueTests.swift in Sources */,
D2EBEB711BB9B7EF003A27DC /* Observable+MultipleTest+CombineLatest.swift in Sources */, D2EBEB711BB9B7EF003A27DC /* Observable+MultipleTest+CombineLatest.swift in Sources */,
D203C4EF1BB9C22800D02D00 /* RxCocoaTests.swift in Sources */,
D2EBEB5C1BB9B7D0003A27DC /* Recorded.swift in Sources */, D2EBEB5C1BB9B7D0003A27DC /* Recorded.swift in Sources */,
D2EBEB611BB9B7E2003A27DC /* Observable+Extensions.swift in Sources */, D2EBEB611BB9B7E2003A27DC /* Observable+Extensions.swift in Sources */,
D203C4EE1BB9C22800D02D00 /* KVOObservableTests.swift in Sources */, D203C4EE1BB9C22800D02D00 /* KVOObservableTests.swift in Sources */,