gpt4 book ai didi

iphone - initWithArray 似乎给出了对源数组而不是新数组的引用

转载 作者:搜寻专家 更新时间:2023-10-30 20:07:38 25 4
gpt4 key购买 nike

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

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

但是我对 vendorArray 所做的更改似乎也对 resultsCore.availableVendors 进行了更改。

这不是我想要的。

我想用 resultsCore.availableVendors 填充 vendorArray,然后让我对 vendorArray 所做的更改保持不变。

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

非常感谢

-代码

编辑下面是我的编辑。

vendors是我做的一个对象

@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 *车辆费用;//这些是附加功能,如故障辅助等 NSString *rateQualifier; BOOL 需要CCInfo; NSMutableArray *费用;//这个数组包含 3 个字典 NSMutableArray *pricedCoverages;

@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 类和数组中包含的其他 3 个类实现 NSCopying 协议(protocol)。

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

非常感谢,很抱歉问了这么长的问题-代码

最佳答案

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

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

关于iphone - initWithArray 似乎给出了对源数组而不是新数组的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3978226/

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