首先,这不是关于如何读取或写入plist的问题。
我一直在从我的程序的不同部分读取和写入同一个PList,我已经厌倦了一遍又一遍地重复代码,我想为这类任务创建一个可重用的类但是我想确保这不是一个疯狂的想法。
非常感谢
答案 0 :(得分:3)
我亲自制作了一个:HERE
基本上,您创建一个子类,其属性名称与您的键匹配,并在运行时填充。
您的Plist:
子类:
#import "PlistModel.h"
@interface CustomModel : PlistModel
@property (strong, nonatomic) NSString * StringPropertyKey;
@property (strong, nonatomic) NSDate * DatePropertyKey;
@property (strong, nonatomic) NSArray * ArrayPropertyKey;
@property (strong, nonatomic) NSDictionary * DictionaryPropertyKey;
@property int IntPropertyKey;
@property BOOL BoolPropertyKey;
@property float FloatPropertyKey;
@end
并访问:
[CustomModel plistNamed:@"CustomModel" inBackgroundWithBlock:^(PlistModel *plistModel) {
// Get the plist
CustomModel * customModel = (CustomModel *)plistModel;
// Populated properties
NSLog(@"PlistIncluded - StringProperty: %@", customModel.StringPropertyKey);
NSLog(@"PlistIncluded - DateProperty: %@", customModel.DatePropertyKey);
NSLog(@"PlistIncluded - ArrayProperty: %@", customModel.ArrayPropertyKey);
NSLog(@"PlistIncluded - DictionaryProperty: %@", customModel.DictionaryPropertyKey);
NSLog(@"PlistIncluded - IntProperty: %i", customModel.IntPropertyKey);
NSLog(@"PlistIncluded - BoolProperty: %@", customModel.BoolPropertyKey ? @"YES" : @"NO");
NSLog(@"PlistIncluded - FloatProperty: %f", customModel.FloatPropertyKey);
}];
自动保存dealloc,或者你可以调用save。如果它不是捆绑包,并且您正在对其进行编辑,则可以设置属性,并自动同步Plist。
答案 1 :(得分:1)
答案 2 :(得分:1)
1)您可以使用类而不是对象
2)不,但是你认为可能会有什么?
3)当然不是,你认为为什么会这样?
你特别询问2,而在较小程度上3则暗示你可能对某些事情有一些错误的假设或误解。描述可能对您有用 你问这些背后的理由。
答案 3 :(得分:1)