Nic*_*rge 12 iphone macos cocoa properties objective-c
我有一个具有NSMutableArray属性的Obj-C 2.0类.如果我使用下面的代码,那么合成的setter将给我一个不可变的副本,而不是一个可变的副本:
@property (readwrite, copy) NSMutableArray *myArray;
Run Code Online (Sandbox Code Playgroud)
有没有理由说Apple没有实现以下语法?
@property (readwrite, mutablecopy) NSMutableArray *myArray;
Run Code Online (Sandbox Code Playgroud)
既然我们没有mutablecopy,那么处理这种(看似常见的)情况的最佳方法是什么?我应该编写自己的setter来执行-mutableCopy吗?
Mar*_*fer 14
我前段时间遇到了同样的问题,并在Apple Developer Connection上发现了一个文档,建议您提供自己的setter实现.代码示例形成链接文档:
@interface MyClass : NSObject {
NSMutableArray *myArray;
}
@property (nonatomic, copy) NSMutableArray *myArray;
@end
@implementation MyClass
@synthesize myArray;
- (void)setMyArray:(NSMutableArray *)newArray {
if (myArray != newArray) {
[myArray release];
myArray = [newArray mutableCopy];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3493 次 |
| 最近记录: |