有没有办法在Objective-C中为内部属性定义setter和getter方法?

时间:2016-10-18 16:53:19

标签: ios objective-c

据我所知,对于头文件中的公共属性,编译器会自动生成getter和setter方法,并且您可以覆盖这些访问器。但对于在类扩展中声明的内部属性,我不知道如何为它们定义getter和setter方法。

我的习惯是通常初始化一个实例(如果需要)并在getter方法中为property设置默认值。所以,我正在寻找一种方法来对内部属性做同样的事情。

1 个答案:

答案 0 :(得分:1)

" public"之间绝对没有运行时差异。和"内部"属性。您讨论的差异就是他们声明的文件。如果编译器无法查看属性的定义,那么它会发出警告(如果您是&#39,则会出错)当你尝试访问它时,重新使用点表示法。但这与在运行时实际运行的方式无关。

您可以覆盖"内部"属性与" public"完全相同的。

那说,并且无关,只是根据以前看到的经验采取或离开的意见:

  

我的习惯是通常初始化一个实例(如果需要)并在getter方法中为property设置默认值。所以,我正在寻找一种方法来对内部属性做同样的事情。

我可能不习惯这个习惯。"对于特别重要的特定情况,覆盖具有延迟初始化的getter是有意义的,但是以这种方式设置getter中的默认值往往过于复杂且容易出错。只需在初始化程序中设置默认值即可。