2014-12-26 4 views
0

Это немного странно - потому что я знаю канонический ответ на него. Это проблема, которую я ожидаю увидеть на iOS (где NSAttributedString не имеет initWithRTF), но я вижу это на Mac OS X на данный момент.Нет видимого интерфейса для NSAttributedString initWithRTF в Mac OS X

Код выглядит следующим образом:

+(NSString*)stringFromRTFData:(NSData*)rtfData 
{ 
    #if TARGET_OS_IPHONE 
    return nil; //need to extract string from RTF for iOS 
    #else 
    NSAttributedString* intermediate = [[NSAttributedString alloc]initWithRTF:rtfData documentAttributes:nil]; 
    return [intermediate string]; 
    #endif 
} 

Как вы можете видеть, я ожидаю, строка будет возвращена, если код скомпилирован для Mac OS X, и ноль должны быть возвращен для прошивки (только потому, что я не надоело вводить код для iOS. В конце концов!)

Для большинства моих проектов этот код работает отлично - но на двух из них (которые являются импортерами spotlight и quicklook) я получаю ошибку 'Нет видимого @interface для' NSAttributedString 'объявляет селектор' initWithRTF: documentAttributes: '

Кроме того, если я попытаюсь найти документацию для этого в Xcode, он вернет документацию iOS для NSAttributedString, а не документацию по OS X для NSAttributedString - предположив, что он считает, что этот плагин для iOS. Однако проверка настроек сборки показывает, что этот проект установлен на OS X 10.10 с архитектурой 64-битной Intel и поддерживаемой платформой OS X.

Что дает? Может ли кто-нибудь увидеть мою ошибку?

Спасибо за любую помощь - и счастливое Рождество для всех вас.

+0

Вы '# import'ing Cocoa или AppKit в затронутой единицы перевода? Метод '-initWithRTF: documentAttributes:' находится в категории в 'NSAttributedString', которая является частью AppKit. (Сам класс 'NSAttributedString' является частью фонда, поэтому он может быть объявлен, даже если его категория не является.) –

+0

Grr! Иногда я мог задушить себя. Положите это как ответ, и я дам вам галочку! – headbanger

ответ

2

Вам необходимо указать #import файл заголовка Cocoa или AppKit. Хотя NSAttributedString является частью Фонда, метод -initWithRTF:documentAttributes: нет. Это часть категории на NSAttributedString в AppKit.

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

  • Нет связанных вопросов^_^