Я думаю, может быть, вы хотели спросить, что лучше, plist или бинарный.Если вы сохраните NSDictionary
в файл, используя writeToFile:
, он будет сохранен в виде списка.Так что в этом смысле разница между ними равна нулю.
Однако у вас также есть возможность преобразовать экземпляр NSDictionary
в сериализованное представление NSData
, а затем сохранить сериализованные данные в виде двоичного файла.
Что касается того, что лучше и почему, это зависит от того, что вы хотите сделать.API для преобразования NSDictionary
в / из файла plist удобнее использовать, чем API для сериализации и восстановления в / из NSData
.Однако сохранение NSDictionary
в виде файла plist работает, только если все в словаре является объектом plist (экземпляры NSData
, NSDate
, NSNumber
, NSString
, NSArray
или NSDictionary
)и если все ваши ключи имеют тип NSString
.В противном случае ваш writeToFile:
вызов не удастся, так как информация о том, почему почему-то предоставлена, крайне разочарована.
Так что, если ваша структура данных соответствует требованиям для сохранения в виде списка, и вы не можете предвидеть, что она когда-либо будет изменена так, что она не будетЧем дольше соответствовать требованиям, тем удобнее хранить его в виде списка.В противном случае ваш единственный вариант - выполнить двоичную сериализацию и хранение с использованием NSData
.Вы можете предпочесть этот последний вариант, если вы хотите иметь код, который не может быть случайно взломан кем-то, вставляющим объект non-plist в вашу структуру данных.