这个有点奇怪 - 因为我知道它的规范答案。这是我期望在iOS上看到的问题(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返回nil(仅仅因为我还没有把代码放入iOS中。我会最终!)
对于我的大多数项目,这段代码完美无缺 - 但是其中两个(聚光灯和quicklook导入器)我得到错误'没有可见@interface for'NSAttributedString'声明了选择器'initWithRTF:documentAttributes:'< / p>
此外,如果我尝试在Xcode中查找此文档,则返回NSAttributedString的iOS文档,而不是NSAttributedString的OS X文档 - 建议它认为此插件适用于iOS。但是,检查构建设置会显示此项目设置为OS X 10.10,其架构为64位Intel和OS X支持的平台。
是什么给出的?任何人都可以看到我的错误吗?
感谢您的帮助 - 祝大家圣诞快乐。
答案 0 :(得分:3)
您需要#import
Cocoa或AppKit头文件。虽然NSAttributedString
是Foundation的一部分,但-initWithRTF:documentAttributes:
方法不是。它是AppKit中NSAttributedString
类别的一部分。