|
1
1
好吧,一般来说,我不会保留这些属性,而且我公开插座的唯一方法是,如果有什么东西需要从外部访问元素,这通常对您的设计是个坏兆头。 我没有尝试过,但是我会尝试只合成读取部分,并且可能只在原子访问重要的地方使用它。AppKit的某些部分并不总是线程安全的。 |
|
|
2
1
Bryan是正确的,因为只有在需要从另一个实例或其他类完全访问UI元素属性时,才需要公开它们。它 是 通常是建筑设计问题的标志,但并非总是如此。 回答最后两个问题:
不。只需添加一个名为-dosomethingreallycomplicated的方法,如果从未调用该方法,则会减慢应用程序的速度。它可以缓慢地启动一堆未使用的代码(从而使二进制文件无缘无故地变大),当然也会减慢编译时间,但不会影响应用程序的运行时性能。
正如Bryan所说,当需要从某个类的给定实例外部访问某个UI元素时,可以将它作为属性(通过@synthesis或手工编码的访问器)公开。同样,需要这样做通常是一个设计问题的迹象。 |
|
|
3
0
存取器所花费的时间是完全无法察觉的。即使你运行这段代码上百万次,所有的ib机器都会使它变得非常矮小。 如果这些变量仅在当时设置,并且从未在类外部访问过,那么访问器可能是不必要的。 |
|
|
4
0
当一个NIB没有存档时,如果存在一个访问器来设置一个给定的出口,那么无存档者将使用它。如果没有访问器,那么将直接使用obj-c运行时函数按名称查找ivar。 访问器将更快,因为您将避免在运行时为了找到有问题的ivar而进行的所有艰苦工作。这就是说,除非你要一次又一次地装上那个笔尖,否则差别是可以忽略的。 您希望为出口使用访问器的主要原因与您希望发布的任何其他IVAR或属性相同。这是确保正确覆盖内存管理的简便方法。 |