【问题标题】:Instance variable & properties in blocks块中的实例变量和属性
【发布时间】:2016-03-14 15:43:54
【问题描述】:

所有对象都在堆中,这很明显,但是实例变量呢? 他们会更改保留计数吗?如果可以,是否可以直接在块中使用和修改?

我遇到了一个教程,它说块可以修改堆中的对象。于是又出现了一个问题:我们可以不使用修改堆对象吗? __block 在对象类型之前?

【问题讨论】:

  • 不太清楚你在问什么。但是,您可以在不使用__block 的情况下修改对象的实例变量,而__block 通常只需要更新局部变量(即基于堆栈)。

标签: ios objective-c objective-c-blocks instance-variables


【解决方案1】:

您不需要__block 限定符来修改实例变量。你在思考这个问题时走在了正确的轨道上。如果一个东西在堆上,它就是持久的。如果它是基于堆栈的,就像一个局部变量,如果块修改它,它确实需要用 __block 标记。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 2010-10-17
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多