Я сериализую строку в PHP, используя метод сериализации
$serializedResult = serialize($value);
Как несериализировать эту сериализованную строку в Objective-C
Я не думаю, что существует сериализованный парсер PHP-объектов для Objective C.
Однако вместо этого вы можете использовать JSON. На стороне PHP используйте json_encode
и на стороне Objective C: http://blog.zachwaugh.com/post/309924609/how-to-use-json-in-cocoaobjective-c
Или, как Томми указал на теперь встроенную реализацию: 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. Или вы можете создать собственную реализацию «serialize» на обоих языках.
Взгляните на спецификации и реализации – http://objectmix.com/php/362009-specification-serialize.html#post1335166 И вот посмотрите источники var_unserializer.c с PHP – http://svn.php.net/repository/ PHP / PHP-SRC / филиалы / PHP_5_2 / внутр / стандарт / var_unserializer.c