在iOS中的NSUserDefaults中存储自定义对象

时间:2016-01-11 21:18:13

标签: ios

我想在NSUserDefaults中存储自定义对象。 我阅读了Apple doc并知道NSUserDefaults只能存储属性列表,例如

NSArray, NSNumber, NSData, NSDate, NSDictionary and NSString.

如果我想存储自定义对象,那么我需要实现NSCoding协议。

我需要有人为以下课程澄清一点:

@interface MyDrawBlock : BlockInfo
{
    CGPoint _blockUpLeft;
    CAShapeLayer* _shapeLayer;
    int _blockColorFlag;
    int _strokeColorFlag;
}

我班上有CAShapeLayer * _shaperLayer。 如何将MyDrawBlock存储在NSUserDefaults中?

如果我实现NSCoding协议,那么我如何存储CAShapeLayer * _shapeLayer。

1 个答案:

答案 0 :(得分:0)

尝试使用var myData = new Map(); myData.set('userOne', {'firstName': 'Felix'}); myData.set('userTwo', {'firstName': 'Bob'}); myData.set('userThree', {'firstName': 'Anna'}); function sortByProp(data, prop) { return new Map([...data.entries()].sort((a, b) => a[1][prop] > b[1][prop])); }; console.log(sortByProp(myData, "firstName")); NSKeyedArchiver

这里看一下类似问题的答案: https://stackoverflow.com/a/2315972/4160199