मैंने पढ़ा है 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एक शब्दकोश से init कर रहे हैं। मैं इनमें से एक विधि जोड़ूंगा, वे प्रासंगिक हो सकती हैं या नहीं।
-(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];
self.venLocationName = [[[vehVendorAvails objectForKey:@"Info"]
objectForKey:@"LocationDetails"]
objectForKey:@"@Name"];
self.venAddress = [[[[vehVendorAvails objectForKey:@"Info"]
objectForKey:@"LocationDetails"]
objectForKey:@"Address"]
objectForKey:@"AddressLine"];
self.venCountryCode = [[[[[vehVendorAvails objectForKey:@"Info"]
objectForKey:@"LocationDetails"]
objectForKey:@"Address"]
objectForKey:@"CountryName"]
objectForKey:@"@Code"];
self.venPhone = [[[[vehVendorAvails objectForKey:@"Info"]
objectForKey:@"LocationDetails"]
objectForKey:@"Telephone"]
objectForKey:@"@PhoneNumber"];
availableCars = [[NSMutableArray alloc] init];
NSMutableArray *cars = (NSMutableArray *)[vehVendorAvails objectForKey:@"VehAvails"];
for (int i = 0; i < [cars count]; i++) {
Car *car = [[Car alloc] initFromVehicleDictionary:[cars objectAtIndex:i]];
[availableCars addObject:car];
[car release];
}
self.venLogo = [[[vehVendorAvails objectForKey:@"Info"]
objectForKey:@"TPA_Extensions"]
objectForKey:@"VendorPictureURL"];
return self;
}
ताकि डरावनी समस्या को संक्षेप में प्रस्तुत किया जा सके।
मुझे Vendorवस्तुओं की एक सरणी की प्रतिलिपि बनाने की आवश्यकता है । मेरा मानना है कि मुझे NSCopyingप्रोटोकॉल को लागू करने की आवश्यकता है Vendor, जिसका मतलब यह हो सकता है कि मुझे इसे लागू करने की आवश्यकता है Carक्योंकि एस Vendorकी एक सरणी रखती है Car। इसका मतलब है कि मुझे इसे उन वर्गों पर भी लागू करने की आवश्यकता है जो 2 सरणियों से संबंधित हैंCar ऑब्जेक्ट ।
अगर मैं NSCopyingप्रोटोकॉल को लागू करने के बारे में कुछ मार्गदर्शन प्राप्त कर सकता हूं, तो मैं वास्तव में इसकी सराहना करूंगा Vendor। मुझे इस पर कोई भी ट्यूटोरियल नहीं मिल सकता है।