मैंने पढ़ा है 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
। मुझे इस पर कोई भी ट्यूटोरियल नहीं मिल सकता है।