Я пытаюсь получить новый проект, настроенный с помощью 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