我已经阅读了NSCopying文档,但对于如何实施所需的内容仍然不确定。
我的课Vendor:
@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
的Vendor类有称为对象的数组Car。
我的Car对象:
@interface Car : NSObject
{
BOOL isAvailable;
NSString *transmissionType;
NSMutableArray *vehicleCharges;
NSMutableArray *fees;
}
@property (nonatomic, assign) BOOL isAvailable;
@property (nonatomic, copy) NSString *transmissionType;
@property (nonatomic, retain) NSMutableArray *vehicleCharges;
@property (nonatomic, retain) NSMutableArray *fees;
- (id) initFromVehicleDictionary:(NSDictionary *)vehicleDictionary;
@end
因此,Vendor拥有一个Car对象数组。Car拥有2个其他自定义对象的数组。
双方Vendor并Car从字典初始化。我将添加其中一种方法,它们可能相关,也可能不相关。
-(id)initFromVehVendorAvailsDictionary:(NSDictionary *)vehVendorAvails {
self.vendorCode = [[vehVendorAvails objectForKey:@"Vendor"]
objectForKey:@"@Code"];
self.vendorName = [[vehVendorAvails objectForKey:@"Vendor"]
objectForKey:@"@CompanyShortName"];
self.vendorDivision = [[vehVendorAvails objectForKey:@"Vendor"]
objectForKey:@"@Division"];
self.locationCode = [[[vehVendorAvails objectForKey:@"Info"]
objectForKey:@"LocationDetails"]
objectForKey:@"@Code"];
self.atAirport = [[[[vehVendorAvails objectForKey:@"Info"]
objectForKey:@"LocationDetails"]
objectForKey:@"@AtAirport"] boolValue];
因此,总结一下这个可怕的问题。
我需要复制Vendor对象数组。我相信我需要在上实现NSCopying协议Vendor,这可能意味着我也需要在协议上实现,Car因为它Vendor包含Cars 数组。这意味着我还需要在属于该Car对象的2个数组中持有的类上实现它。
如果我能在上实现NSCopying协议方面获得一些指导,我真的很感激Vendor,我在任何地方都找不到关于此的任何教程。
桃花长相依
动漫人物
绝地无双