ben*_*ord 9 properties objective-c
为内存管理带来的好处,为私有变量创建@properties是不是很糟糕?
对于许多私有变量,让公众面对@properties似乎是混乱和错误的.
(主要是,我在低内存条件下使用相应的"事件"方法释放私人ivars.)
示例: 我通常这样做是为了发布一个私有的ivar:
[name release]; name = nil;
Run Code Online (Sandbox Code Playgroud)
但是使用@properties,我可以这样做:
self.name = nil;
Run Code Online (Sandbox Code Playgroud)
稍后在我的代码中,将执行此操作,因此需要设置为nil:
if( !name)
name = [[NSString alloc] initWithFormat:@"Hi %@",inputName];
Run Code Online (Sandbox Code Playgroud)
and*_*n22 23
另一种方法是保持财产私有.您可以使用以下代码(在.m文件中)使该属性仅在您的类中可访问:
#import "MyClass.h"
@interface MyClass ()
@property (retain) NSString* privateString;
@end
@implementation MyClass
@synthesize privateString;
// Your code here
@end
Run Code Online (Sandbox Code Playgroud)
现在你已经获得了属性的简易性,但是其他类仍然无法访问它,即使它们导入你的.h文件!
| 归档时间: |
|
| 查看次数: |
635 次 |
| 最近记录: |