2011-08-06 44 views
1

我知道如果我们使用@synthesize编译器在hadder文件中定义属性的基础上创建getter和setter ..但是如果我们想创建自己的getters和setter,我们会做什么? 我们如何创造我们自己的getter和stters这个哪个getters和setter执行得更快?

@synthesize navcontroller

@属性(非原子,保留)的UINavigationController * navcontroller;

如果我们创建自己的getter和setter方法执行速度更快或@synthesize getter和setter方法瓶坯更快,为什么?......

+0

大多数情况下你不会注意到巨大的差异。毕竟你做同样的事情,只是手动而不是自动。 – futureelite7

+0

参考[这个问题](http://stackoverflow.com/questions/4141189/objective-c-custom-getter-setter)。无论它们是如何创建的,性能增益或损失最多都是微不足道的。花时间在其他领域进行优化。 – FreeAsInBeer

+0

这个[示例](http://useyourloaf.com/blog/2011/2/8/understanding-your-objective-c-self.html)可能会很好地描述你,getter和setter的性能取决于写作的代码 –

回答

1

我会给你这个

一个小例子创建一个setter和getter像这样...

-(XYPoint *) origin 
{ 
    return origin; 
} 

- (void) setOrigin: (XYPoint *) pt 
{ 
    origin = pt; 
} 

如果你通过make synthesize来创建这个。这些都执行相同的工作。这并不是一个很大的性能表现,所以不要担心它的性能。