propertylistserialization 1.0.0 copy "propertylistserialization: ^1.0.0" to clipboard
propertylistserialization: ^1.0.0 copied to clipboard

outdated

iOS compatible plist serialization and deserialization library for Dart.

iOS compatible plist serialization and deserialization library for Dart #

Features #

Binary plist #

  • Supports version bplist00 constructs only.
  • Byte by byte accurate output *1 from method PropertyListSerialization.dataFromPropertyList() with iOS method [NSPropertyListSerialization dataFromPropertyList:format:options:error:]

*1 byte by byte accuracy excludes <dict> dictionaries with more than one key/value pair - unlike XML plists, they are not sorted by key, and therefore the ordering of the key/value pairs will differ.

XML plist #

XML format is not currently implemented and a UnimplementedError will be thrown.

Distribution #

  • Minimum Dart version 2.12 (null safety)

Data type conversions #

Serialization (Dart -> plist)

Input Dart type Equivalent ObjC type Output plist type
String NSString <string>
int NSNumber (integerValue) <integer>
Float32 NSNumber (floatValue) <real> *2
double NSNumber (doubleValue) <real>
Map<String, Object> NSDictionary <dict>
List NSArray <array>
DateTime NSDate <date>
true NSNumber (boolValue) YES <true>
false NSNumber (boolValue) NO <false>
ByteData NSData <data>

*2 Serialization only, deserialization will always output double.

Deserialization (plist -> Dart)

Input plist type Equivalent ObjC type Output Dart type
<string> NSString String
<integer> NSNumber (longValue) int
<real> NSNumber (doubleValue) double
<dict> NSDictionary Map<String, Object>
<array> NSArray List
<date> NSDate DateTime
<true> NSNumber (boolValue) YES true
<false> NSNumber (boolValue) NO false
<data> NSData ByteData

Class PropertyListSerialization #

ByteData dataWithPropertyList(Object, Format)

static ByteData dataWithPropertyList(Object obj, Format format);

For the object graph provided, returns a property list as ByteData.

Equivalent to iOS method [NSPropertyList dataWithPropertyList:format:options:error]

Notes: XML format is not currently implemented and an UnimplementedError will be thrown.

For the object graph provided, returns a property list as byte[] (encoded using utf8 for Format.XML)

Equivalent to iOS method [NSPropertyList dataWithPropertyList:format:options:error]

params obj - The object graph to write out as a property list. The object graph may only contain the following types: String, int, Float32, double, Map<String, Object>, List, DateTime, bool or ByteData.

params format - Must be Format.Binary

returns ByteData of the property list.

throws PropertyListWriteStreamException if the object graph is incompatible.


Object propertyListWithData(ByteData, Format)

static Object propertyListWithData(ByteData data, Format format);

Creates and returns a property list from the specified ByteData.

Equivalent to iOS method [NSPropertyList propertyListWithData:options:format:error]

Notes: XML format is not currently implemented and an UnimplementedError will be thrown.

params data - ByteData of binary plist.

params format - Must be Format.Binary

returns Returns one of String, int, double, Map<String, Object>, List, DateTime, bool, ByteData.

throws PropertyListReadStreamException if the plist is corrupt, values could not be converted or the input stream is EOF.

3
likes
0
pub points
96%
popularity

Publisher

verified publisherelectricbolt.co.nz

iOS compatible plist serialization and deserialization library for Dart.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

More

Packages that depend on propertylistserialization