Ошибка Clang: ссылка на NSUTF8StringEncoding неоднозначна

Я пытаюсь создать модульные тесты, используя новую структуру XCTest, представленную в Xcode 5. У меня есть строка в одном из моих тестовых случаев, которая выглядит так:

XCTAssertEqual([self.client stringEncoding], NSUTF8StringEncoding, …);

Когда я пытаюсь запустить свои тесты, Xcode выдает эту ошибку: «Ссылка на NSUTF8StringEncoding неоднозначна». Я могу заставить тест работать, изменив приведенную выше строку на это:

XCTAssertEqual([self.client stringEncoding], (NSStringEncoding) 4, …);

(Это работает, потому что 4 является значением NSUTF8StringEncoding.) Это также происходит, когда я присваиваю NSUTF8StringEncoding локальной переменной и вместо этого использую ее в вызове XCTAssertEqual(). Почему я получаю эту ошибку?


person wjk    schedule 21.09.2013    source источник
comment
Этот код работает для меня. Если вы вернете NSUTF8StringEncoding обратно в функцию и щелкнете по ней, удерживая нажатой клавишу Command, что вы увидите?   -  person bneely    schedule 22.09.2013
comment
@bneely: Когда я щелкаю NSUTF8StringEncoding, удерживая клавишу Command, я перехожу непосредственно к его объявлению в NSString.h строке 40. Он все еще не компилируется.   -  person wjk    schedule 23.09.2013
comment
С какими фреймворками вы связываетесь в своей цели модульного тестирования? Какие заголовки вы включаете в файл реализации модульного теста (файл .m)?   -  person bneely    schedule 24.09.2013
comment
Я #включаю <Foundation/Foundation.h> и <AFNetworking/AFNetworking.h> (последний — это фреймворк, который я тестирую). Я связываюсь с платформами Cocoa, AFNetworking и XCTest. Все равно не получится.   -  person wjk    schedule 25.09.2013
comment
Когда вы ищете в своем проекте NSUTF8StringEncoding с помощью Find Navigator, что вы видите?   -  person bneely    schedule 25.09.2013
comment
Пробовали ли вы (NSStringEncoding)NSUTF8StringEncoding в своем тесте?   -  person bneely    schedule 25.09.2013
comment
@bneely: я вижу только ссылки на символ в комментариях, коде фреймворка и один раз в модульном тесте, который доставляет мне проблемы. Приведение значения к типу NSStringEncoding не имеет значения.   -  person wjk    schedule 26.09.2013
comment
Я в тупике здесь. Это может быть ошибка Apple. Если вы полны решимости обойти это, попробуйте изменить тест на XCTAssertTrue(NSUTF8StringEncoding == [self.client stringEncoding], @"");.   -  person bneely    schedule 27.09.2013
comment
Я тоже это понимаю, но это исчезает, когда я компилирую и запускаю тесты, так что это больше раздражает.   -  person Aron    schedule 22.01.2014
comment
stackoverflow.com/ вопросы/19178109/ ?   -  person Larme    schedule 18.02.2014
comment
Я также начал получать это с одной из моих целей сборки после того, как я настроил минимальную цель развертывания и версию SDK, чтобы они соответствовали цели, чей продукт действует как загрузчик пакетов для набора тестов. Застрявший :-(   -  person mz2    schedule 24.06.2014


Ответы (1)


Пожалуйста, импортируйте приведенную ниже структуру в свой файл.

#import <UIKit/UIKit.h>
person JayPathak    schedule 28.08.2015