86得票3回答
实现NSCopying

我阅读了NSCopying文档,但我仍然非常不确定如何实现所需的内容。 我的类是Vendor:@interface Vendor : NSObject { NSString *vendorID; NSMutableArray *availableCars; ...

66得票8回答
如何将copy和mutableCopy应用于NSArray和NSMutableArray?

copy和mutableCopy在对NSArray和NSMutableArray进行操作时有什么区别?以下是我的理解,是否正确?// ** NSArray ** NSArray *myArray_imu = [NSArray arrayWithObjects:@"abc", @"def", ...

27得票7回答
UIView作为字典键?

我希望有一个将UIView映射到其他内容的NSDictionary。 然而,由于UIView没有实现NSCopying协议,所以不能直接将它们用作字典键。

23得票1回答
在子类的子类中实现NSCopying

我有一个小的类继承结构,我在实现copyWithZone:方法时遇到了困难。我已经阅读了关于NSCopying的文档,但却找不到正确的答案。假设有两个类:Shape和Square。Square类定义如下:@interface Square : Shape 没有什么意外。每个类都有一个属性,Sh...

21得票4回答
NSManagedObject作为NSDictionary的键?

在我的应用中,我有一个`NSDictionary`,它的键应该是`NSManagedObject`的子类实例。 然而,问题在于`NSManagedObject`没有实现`NSCopying`协议,这意味着不能将Core Data对象/`NSManagedObject`实例用作字典键,即使对它...

16得票2回答
iPhone: (id)copyWithZone:(NSZone *)zone:什么是“zone”?

当在类中实现 NSCopying 方法以启用拷贝时,参数 zone 有什么作用? 如果我设置一个新对象,我不需要使用 allocWithZone 进行分配,只需要使用 alloc 就足够了... 我感到困惑...

15得票5回答
为什么在实现NSCopying时,zone参数总是nil?

这可能是一个简单的问题,但为什么在我的类中实现NSCopying协议时,我会得到zone == nil呢?- (id)copyWithZone:(NSZone *)zone { if (zone == nil) NSLog(@"why this is allways n...

12得票3回答
什么情况下需要使用NSCopying?

我知道如果您的对象将用作NSDictionary中的键,那么需要实现NSCopying协议。还有其他一些类似于此的时候需要实现NSCopying吗? 如果我认为我的模型对象不需要遵循NSCopying协议,那么我可能错了吗?

10得票3回答
使用NSCopying复制私有实例变量的最佳实践

我可能在这里遗漏了一些明显的东西,但我正在实现一个对象的 NSCopying。该对象有私有实例变量,不通过 getter 方法暴露,因为它们不应该在对象外部使用。 在我的 copyWithZone: 实现中,我需要 alloc/init 新实例,并设置其状态以匹配当前实例。显然,我可以从 c...

9得票2回答
在Objective-C中,使用instancetype作为复制的返回类型?

使用instancetype作为init和相关方法的返回值是推荐的做法,详见最新的clang特性。然而,关于NSCopying协议中的copyWithZone:方法的返回值的最佳实践是什么呢(参见之前的最佳实践这个帖子)?在clang文章的方法命名规则推断类时并没有提到这一点,但我认为它不应该...