Pad*_*215 12 iphone objective-c nsdictionary uiimagepickercontroller nsdata
有一个应用程序,可以拍照,然后上传到服务器.将它编码为base 64并将其通过XMLRPC传递给我的php服务器.
我想获取从UIImagePickerController委托返回的NSDictionary信息
-(void) imagePickerController:(UIImagePickerController *)imagePicker didFinishPickingMediaWithInfo:(NSDictionary *)info
Run Code Online (Sandbox Code Playgroud)
并将其转换为NSData,以便我可以对其进行编码.
那么,我如何将NSDictionary转换为NSData?
Per*_*ion 24
您可以使用NSKeyedArchiver将NSDictionary序列化为NSData对象.请注意,字典中的所有对象都必须是可序列化的(在其继承树中的某个位置实现NSCoding)才能使其工作.
懒得通过我的项目来提升代码,所以这里有一些来自互联网:
编码
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:yourDictionary forKey:@"Some Key Value"];
[archiver finishEncoding];
[archiver release];
/** data is ready now, and you can use it **/
[data release];
Run Code Online (Sandbox Code Playgroud)
解码:
NSData *data = [[NSMutableData alloc] initWithContentsOfFile:[self dataFilePath]];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
NSDictionary *myDictionary = [[unarchiver decodeObjectForKey:@"Some Key Value"] retain];
[unarchiver finishDecoding];
[unarchiver release];
[data release];
Run Code Online (Sandbox Code Playgroud)
NSDictionary-> NSData:
NSData *myData = [NSKeyedArchiver archivedDataWithRootObject:myDictionary];
Run Code Online (Sandbox Code Playgroud)
NSData-> NSDictionary:
NSDictionary *myDictionary = (NSDictionary*) [NSKeyedUnarchiver unarchiveObjectWithData:myData];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24853 次 |
| 最近记录: |