PHP serialize / unserialize как метод в Objective-C

Я сериализую строку в 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