runtime-归档
生活随笔
收集整理的這篇文章主要介紹了
runtime-归档
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數據持久化方式之一:歸檔
那么怎么實現歸檔呢?各位程序員應該都寫過這樣的代碼
- (void)encodeWithCoder:(NSCoder *)aCoder {[aCoder encodeObject:self.userPhone forKey:@"userPhone"];[aCoder encodeObject:self.tokenId forKey:@"tokenId"];[aCoder encodeBool:self.isUnlockGesture forKey:@"isUnlockGesture"];[aCoder encodeDataObject:data]; }- (instancetype)initWithCoder:(NSCoder *)aDecoder {if (self = [super init]) {self.userPhone = [aDecoder decodeObjectForKey:@"userPhone"];self.tokenId = [aDecoder decodeObjectForKey:@"tokenId"];self.isUnlockGesture = [aDecoder decodeBoolForKey:@"isUnlockGesture"];}return self; }當你的數據模型不多的時候,感覺也并沒有什么卵問題
但是!當你有20個屬性的時候怎么辦?復制粘貼40次?
class_copyPropertyList()函數,了解一下?
廢話不多說,上代碼
unsigned int propertyCount;?
objc_property_t *properties = class_copyPropertyList([self class], &propertyCount); ? ?
?
for (int idx = 0; idx < propertyCount; idx++) {
? ? objc_property_t property = properties[idx];
? ? NSLog(@"propertyName: %s", property_getName(property));?
}? ?
free(properties);
打印結果
propertyName: userPhone propertyName: tokenId propertyName: isUnlockGesture好像類型沒看到?沒有類型怎么歸檔,是不是傻。。
property_getAttributes(_property)函數在了解一下?轉載于:https://www.cnblogs.com/chunyu-iOS/p/9394544.html
總結
以上是生活随笔為你收集整理的runtime-归档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 委托基应用实例
- 下一篇: JavaScript中的坐标