我已经使用序列化方法在 PHP 中序列化了一个字符串
$serializedResult = serialize($value);
如何在 Objective-C 中反序列化这个序列化的字符串
我已经使用序列化方法在 PHP 中序列化了一个字符串
$serializedResult = serialize($value);
如何在 Objective-C 中反序列化这个序列化的字符串
我认为没有针对 Objective C 的序列化 PHP 对象解析器。
但是,您可以改用 JSON。在 PHP 端使用json_encode
,在 Objective C 端参见:http ://blog.zachwaugh.com/post/309924609/how-to-use-json-in-cocoaobjective-c
或者正如 Tommy 指出的现在的原生实现:http: //developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html
我也遇到同样的问题。作为解决方案,我编写了解析器来完成这项工作。它同时具有序列化和反序列化功能。您可以从此链接获取。
这是序列化的测试示例,RTSerializer *serializer=[[RTSerializer alloc]init];
NSMutableDictionary *pack=[NSMutableDictionary dictionary];
[pack setValue:@"id" forKey:@"3"];
[pack setValue:@"tariffid" forKey:@"152"];
[pack setValue:@"rgid" forKey:@"1"];
[pack setValue:@"name" forKey:@"Test"];
NSString *_data=@"";
_data=[serializer pack inString:_data];
反序列化的例子,
id object=[serializer deserialize:@"a:1:{i:0;a:4:{s:2:\"id\";s:1:\"3\";s:8:\"tariffid\";s:3:\"152\";s:4:\"rgid\";s:1:\"1\";s:4:\"name\";s:4:\"Test\";}}"];
不要认为这是可能的。根据 PHP 手动序列化方法应该只在 PHP 脚本中使用。
您应该使用一些开放格式,例如 JSON。或者您可以用两种语言创建自己的“序列化”实现。