【问题标题】:initWithArray seems to give a reference to source array rather then a new arrayinitWithArray 似乎给出了对源数组的引用,而不是一个新数组
【发布时间】:2010-10-20 13:16:02
【问题描述】:

在我的代码中,我像这样使用 initWithArray:

vendorArray = [[NSMutableArray alloc] initWithArray:resultsCore.availableVendors];

但我对 vendorArray 所做的更改似乎也适用于 restultsCore.availableVendors。

这不是我想要的。

我想用restultsCore.availableVendors 填充vendorArray,但不影响我对vendorArray 所做的更改。

是否可以在不使用 for 和 if 语句将数据对象逐个对象从 restultsCore.availableVendors 复制到 vendorArray 的情况下获得此功能?

非常感谢

-代码

编辑下面是我的编辑。

供应商是我制作的对象

@interface Vendor : NSObject 
{
NSString        *vendorID;
NSMutableArray  *availableCars; 
BOOL            atAirport;
}

@property (nonatomic, copy) NSString *vendorID;
@property (nonatomic, retain) NSMutableArray *availableCars;
@property (nonatomic, assign) BOOL atAirport;

- (id)initFromVehVendorAvailsDictionary:(NSDictionary *)vehVendorAvails;

@end

你可以看到它有一个数组。

这个数组是我制作的另一个对象,叫做 Car。

@interface Car : NSObject 

{ NSMutableArray *vehicleCharges; // 这些是附加功能,例如故障辅助等 NSString *rateQualifier; BOOL 需要CCInfo; NSMutableArray *费用; // 这个数组包含 3 个字典 NSMutableArray *定价覆盖; }

@property (nonatomic, retain) NSMutableArray *vehicleCharges;
@property (nonatomic, copy) NSString *rateQualifier;
@property (nonatomic, assign) BOOL needCCInfo;
@property (nonatomic, retain) NSMutableArray *fees;
@property (nonatomic, retain) NSMutableArray *pricedCoverages;

- (id) initFromVehicleDictionary:(NSDictionary *)vehicleDictionary;

@结束

Car 还有 3 个我的其他对象数组。它都是面向对象的-.-

我一直在阅读 NSCopying 并看到了一个教程。但是我仍然觉得在这里做什么感到很迷茫。

我是否需要为我的 Vendors 类、Car 类以及 car 数组中包含的其他 3 个类实现 NSCopying 协议。

Vendors 是我要复制的数组中包含的对象。那么这是我唯一需要为其实现 NSCopying 教程的课程吗?

非常感谢,抱歉问题太长了 -代码

【问题讨论】:

    标签: iphone objective-c


    【解决方案1】:
    vendorArray = [[NSMutableArray alloc] initWithArray:resultsCore.availableVendors copyItems:YES];
    

    不要忘记在要复制的对象的类中实现 NSCopying 协议。

    【讨论】:

    猜你喜欢
    • 2015-04-14
    • 1970-01-01
    • 2012-09-19
    • 2021-02-12
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    相关资源
    最近更新 更多