Используйте NSKeyedArchiver.
// serialize object to data with the given key
+ (NSData*) archive:(id<NSCoding>)object key:(NSString*const)key {
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:object forKey:key];
[archiver finishEncoding];
[archiver release];
return [data autorelease];
}
+ (id<NSCoding>) unarchiveKey:(NSString*const)key data:(NSData*)codedData{
// unarchive
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:codedData];
id<NSCoding,NSObject> object = [unarchiver decodeObjectForKey:key];
[unarchiver finishDecoding];
[unarchiver release];
return object;
}
и вам нужно отредактировать объект для сериализации, чтобы реализовать NSCoding для его ivars:
#pragma mark - NSCoding
- (void)encodeWithCoder:(NSCoder*)coder {
[super encodeWithCoder:coder];
[coder encodeObject:self.myVar forKey:@"someArbitraryKey"];
// ... other ivars
}
- (id)initWithCoder:(NSCoder*)coder {
self = [super initWithCoder:coder];
if(self) {
self.myVar = [coder decodeObjectForKey:@"someArbitraryKey"];
// ...other ivars
}
return self;
}
Итак, создайте два метода для архивирования и разархивирования и внедрите NSCoding в объект для сериализации. Затем возьмите NSData и сделайте его Base64 , чтобы добавить его в SOAP. В основном это. Я ничего не собирал, удачи. Прочитайте ссылку Бена.