我試圖使用ReactiveCocoa和Kiwi進行測試,並使用CocoaPods進行依賴管理。將ReactiveCocoa,Kiwi和Cocoapods一起使用,得到「不是元組」異常
我有一個典型的登錄屏幕設置的第一個測試,其中登錄按鈕沒有啓用,直到用戶輸入用戶名和密碼的東西。只是一個簡單的一些示例代碼版本:
- (void)viewDidLoad
{
[super viewDidLoad];
RAC(self.loginButton, enabled) = [RACSignal combineLatest:@[self.userNameField.rac_textSignal,
self.passwordField.rac_textSignal]
reduce:^(NSString *username, NSString *password) {
return @(username.length > 0 && password.length > 0);
}];
}
的問題是,當我運行測試中,我得到以下錯誤:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Value from stream <RACDynamicSignal: 0xe3735a0> name: +combineLatest: (
"<RACDynamicSignal: 0xe368c50> name: <UITextField: 0xe3707a0> -rac_textSignal",
"<RACDynamicSignal: 0xe372d80> name: <UITextField: 0xe36aef0> -rac_textSignal"
) is not a tuple: <RACTuple: 0xe377a40> (
"",
""
)'
當然,這是一個RACTuple
,所以這只是令人困惑。
我的研究打開了下面的問題上ReactiveCocoa:
https://github.com/ReactiveCocoa/ReactiveCocoa/issues/901
診斷有是ReactiveCocoa是獲得鏈接莫名其妙地兩次。有問題的人通過拋棄CocoaPods解決了問題。這看起來不正確。有沒有人得到這個工作?
爲了完整起見,我Podfile是:
platform :ios, '6.0'
pod 'ReactiveCocoa'
target :test do
link_with 'PollVaultTests'
pod 'Kiwi/XCTest'
end
一個潛在的問題:你需要重新運行'pod install'才能工作。 – eremzeit