fuz*_*oat 18 iphone cocoa-touch objective-c
只是一个简单的问题,如果我可以,我一直(自学习obj-c)写入int属性如下...
@property(nonatomic, assign) int myValue;
Run Code Online (Sandbox Code Playgroud)
我现在认为这可能是矫枉过正的,我不妨写一下......
@property int myValue;
Run Code Online (Sandbox Code Playgroud)
只是好奇,我知道"assign"是默认行为,"nonatomic"可以快一点......
祝一切顺利
加里
Jer*_*myP 36
@property(nonatomic, assign) int myValue;
Run Code Online (Sandbox Code Playgroud)
是不一样的
@property int myValue;
Run Code Online (Sandbox Code Playgroud)
属性的默认值是atomic(没有显式关键字atomic
).所以第二个例子是原子属性.对于原始类型的属性,我不知道是否发生任何锁定,但可能会引入内存写入障碍(即,setter将强制将值写回主内存,而不是仅写入缓存).因此原子特性比非原子特性慢得多.但是,作为该计划总执行时间的一小部分,它们仍然可以代表非常小的百分比.在您分析代码之前,您不会知道.
那么,声明原子性的问题与您是否显式声明默认属性是一个单独的问题.前者将取决于您的代码的性质 - 是否可能有争议的多线程访问该属性?
关于后者,它主要是风格问题,但总的来说,我认为你应该明确清楚地犯错.键入那些额外的几次击键,你的生命到底需要多少秒?
归档时间: |
|
查看次数: |
25172 次 |
最近记录: |