【问题标题】:Do Objective-C properties (self.foo) have much more overhead than using ivars (_foo)?Objective-C 属性 (self.foo) 是否比使用 ivars (_foo) 有更多开销?
【发布时间】:2015-10-06 18:23:54
【问题描述】:

我更喜欢写“self.foo”而不是“_foo”,主要是出于风格原因。理论上 self.foo 表示函数调用,而 _foo 不是。我认为这没问题,因为它对大多数代码来说不太重要。

我的问题是:编译器是否将其优化为相同的东西?由于方法混乱,也许它不能?有人有什么见解吗?

【问题讨论】:

    标签: objective-c properties compiler-optimization ivar


    【解决方案1】:

    不,编译器不会将其优化为仅访问实例变量。它无法优化它,因为该类可能有一个覆盖 getter 方法的子类。 (注意子类可以在运行时创建!)

    但是,除非您已分析代码并确定它是瓶颈,否则您不必担心消息发送开销。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-14
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    • 2013-05-03
    • 2013-01-28
    • 2011-03-26
    相关资源
    最近更新 更多