我有一个块,其中我使用self
所以我声明了对self的弱引用:
__weak MyClass *weakSelf = self;
现在我的问题:
我在定义weakSelf
时遇到错误,我不明白这应该是什么意思。:
无法在自动变量上指定弱属性
在我的区块中,我将weakSelf
传递给另一个区块,我不确定我现在是否必须再次执行相同的操作:
__weak MyClass *weakWeakSelf = weakSelf;
然后将weakWeakSelf
传递给该区块?
答案 0 :(得分:8)
这很有可能发生在您定位到iOS 4时。您应该将其更改为
__unsafe_unretained MyClass *weakWeakSelf = weakSelf;
答案 1 :(得分:3)
使用ARC
__weak __typeof__(self) wself = self;
没有ARC
__unsafe_unretained __typeof__(self) wself = self;
答案 2 :(得分:1)
使用libextobjc,它将易读且简单:
var tpl = compile("<b>{{text}}</b>");
// tpl = function (data) {
// return "<b>" + (typeof data.text == "function" ? data.text() : data.text) + "</b>";
// }
tpl({ text: "ping" }); // "<b>ping</b>"
tpl({ text: "pong" }); // "<b>pong</b>"