3

我正在尝试 TwitPic 使用 GSTwitPicEngine 类在 Twitter 上发布带有文本的图像,该类使用 YAJLiOS,

所以我在我的项目中添加了 YAJLiOS 框架,并且在 YAJLiOS 框架中的文件“YAJLParser.h”中出现了这个('assign' 和 'weak' 是互斥的)错误。在以下行中显示错误 -

@property (assign, nonatomic) __weak id <YAJLParserDelegate> delegate;

当我删除 __weak 时,它变成 Apple Mach-O Linker (Id) Error。

Please help.How to handle this kinda errors.I am not getting the reason.

4

3 回答 3

1

可能您现在已经弄清楚了,无论如何,这就是我摆脱此错误的方法:

@property (assign) __unsafe_unretained id<YAJLParserDelegate> delegate;   

确保delegate您的 .h 代码(如果有)中的所有其他声明都__unsafe_unretained在以下@private部分中:

__unsafe_unretained id<YAJLParserDelegate> delegate;
于 2012-06-05T12:01:08.610 回答
1

傻我...

尝试

@property (unsafe_unretained, nonatomic) id <YAJLParserDelegate> delegate;
于 2012-04-30T02:36:37.567 回答
0

正如您可能已经知道的那样,assignweak不是一回事......在功能上它们非常接近,但是weak 更加复杂,并且巧妙地消除了对已处置对象的引用以避免崩溃(除其他事项外,还有保留周期) .

无论如何——怎么办?我最好的猜测是尝试退出 ARC 的向后兼容旧版修复程序......将_ weak替换为_unsafe_unretained看看情况如何。

于 2012-04-27T14:27:10.420 回答