我在搜索__weak__block之间的区别

我的旧代码是这样的:

__block GWTSDemandContactsController *safeMe = self;

[GWTSService getSuggestedContactsForDemand:self.demand success:^(NSArray *contacts) {
    safeMe.activityLoading.hidden = true;
    [safeMe setContactsForView:contacts];
} failure:^(NSError *error) {
    safeMe.activityLoading.hidden = true;
}];

然后,当我迁移到使用ARC时,我开始使用__weak ,还发现我可以使用typeof(self)

这非常简单,因此不必每次保存self引用时都写类的名称。 所以现在我的代码看起来像这样:

__weak typeof(self) safeMe = self;

但是为什么我们在这里避免* 这不是对self吗? 避免*我们在这里存储什么?

我不知道我是否想念什么,但我听不懂。

#1楼 票数:2 已采纳

这与所有权说明符无关。 只是typeof(self)已经是一个指针,因为self的类型是“指向GWTSDemandContactsController的指针”,即GWTSDemandContactsController * 完全写出的类型包括*

指向的对象是GWTSDemandContactsController ,但是变量self是指向该对象的指针。

  ask by Pablo Matias Gomez translate from so

未解决问题?本站智能推荐:

2回复

从未初始化的变量中获取对类对象的引用-未实例化的对象

假设我有一个未初始化的变量: 从这个变量中,我想引用UIViewController ,这样我就可以调用alloc或new来返回实例化的对象。 本质上,我想这样做: ...之所以无法编译,是因为编译器期望表达式而不是类型。 如果@encode返回实际类型,则可以执行以
4回复

检查宏参数是否为指针

是否有一些“不错”的方法来检查传递给宏的变量是否是指针? 例如 这个想法是,这不是在运行时完成,而是在编译时完成,例如:根据变量是否为指针,我们得到不同的代码。 所以我希望 IS_PTR() 以某种方式评估某种常量表达式。 我是否以错误的方式看待这个想法?
2回复

使用__typeof解释弱自我赋值

我在GitHub上的REActivityViewController项目中发现了一行奇怪的代码并且无法理解它。 它似乎避免将值转换为声明它的确切类,但我不知道为什么这是必要的。 我想知道它对继承是否有点重要。 任何人都可以解释为什么会这样做? https://github.co
3回复

如何知道变量是否是C中的函数指针?

我有一个void(*func)(int)类型的void(*func)(int) ,我得到了一个指向这个函数的指针,我怎么能确定一个指针真的是这种类型的? 那是正确的吗? 编辑 - 我从函数中获取指针作为参数,我想检查该函数内指针的类型。
1回复

在Objective-C上下文中__typeof关键字的含义是什么?

在Objective-C上下文中__typeof关键字的含义是什么?
1回复

为什么“typeof”不需要括号? [关闭]

很难说出这里问的是什么。 这个问题模棱两可、含糊不清、不完整、过于宽泛或言辞激烈,无法以目前的形式合理回答。 如需帮
2回复

为什么可变对象不需要双指针?

我读了这个答案https://stackoverflow.com/a/833124/5175709和其他一些问题。 根据我的理解,由于对象可能会扩展并耗尽空间,因此内存位置也会发生变化。 我永远不明白为什么我们不应该将**用于NSMutableData或NSMutableArray因为它们也
1回复

我可以使用弱静态指针吗?

我可以在objective-c中使用弱指针的静态指针吗? 我知道它编译,但我想知道它是否会像我期望的弱指针行为一样。