gpt4 book ai didi

iphone - 将 Obj-C 2.0 属性与可变对象(例如 NSMutableArray)一起使用的最佳方式是什么?

转载 作者:太空狗 更新时间:2023-10-30 03:21:30 25 4
gpt4 key购买 nike

我有一个具有 NSMutableArray 属性的 Obj-C 2.0 类。如果我使用下面的代码,那么合成的 setter 会给我一个不可变的副本,而不是可变的副本:

@property (readwrite, copy) NSMutableArray *myArray;

Apple 没有实现以下语法有什么原因吗?

@property (readwrite, mutablecopy) NSMutableArray *myArray;

由于我们没有mutablecopy,处理这种(看似常见的)情况的最佳方法是什么?我应该只编写自己的执行 -mutableCopy 的 setter 吗?

最佳答案

我前段时间遇到了同样的问题,发现了一个document on the 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];
}
}

关于iphone - 将 Obj-C 2.0 属性与可变对象(例如 NSMutableArray)一起使用的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/816720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com