我想在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。
答案 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