2014-12-06 4 views
0

У меня есть pickerView с динамически меняющимся количеством строк. Я хочу выбрать этот счет из моей модели в главной целевой программе.Получить доступ к классам в другой цели с помощью KIF

Например, // Тест целевой

#import <KIF/KIF.h> 
#import "SearchModel.h" //import class from main target 

@interface Acceptance_Tests : KIFTestCase 
@property (nonatomic, strong) SearchModel * searchModel; 

@end 

@implementation Acceptance_Tests 

-(void)test_01_SearchWithConditions 
{ 
    self.searchModel = [[SearchModel alloc] init]; 

    [tester tapViewWithAccessibilityLabel:@"Search Library"]; 
    [tester tapViewWithAccessibilityLabel:@"type_pickerView"]; 

    //choose type 
    for(int i = 0; i < self.searchModel.types.count; i++) 
    { 
     [tester waitForTappableViewWithAccessibilityLabel:@"Search"]; 
     [tester selectPickerViewRowWithTitle:[self.searchModel.types objectAtIndex:i]]; 
     [tester tapViewWithAccessibilityLabel:@"Search"]; 
    } 
} 

Когда я Cmnd + UI получаю сообщение об ошибке

Undefined symbols for architecture x86_64: 
    "_OBJC_CLASS_$_SearchModel", referenced from: 
     objc-class-ref in Acceptance_Tests.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Также я могу добавить SearchModel.m к Компилировать Курсы в тестовой мишени , но это означает, что я должен добавить все классы дважды (в основной мишени и в целевой цели), мм. Любые мысли? Могу ли я получить доступ к классам в основной цели другим способом ?

+0

Являются ли типы вашего SearchModel динамическими или статическими? – kpsharp

+0

kpsharp, dynamic –

+0

Попробуйте проверить ассоциацию файлов. Убедитесь, что файл включен в цель. – kpsharp

ответ

0

Ошибка компиляции сообщает вам, что не так. Вы выполняете тесты KIF в режиме x64 (проверьте свои архитектуры и допустимые архитектуры в build_settings. У вас есть arm64?), Ваше целевое приложение, вероятно, не имеет одинаковых настроек архитектуры.

Чтобы начать, я хотел бы убедиться, что настройки архитектуры идентичны между вашей целевой целью KIF и вашим приложением.

Смежные вопросы