本地文件.json .plist文件是較為常用的存儲本地數據的文件,對這些文件的操作也是一種常用的基礎。
本文同時提供初始化變量的比較標准的寫法,如果你有更好的初始化變量的寫法,歡迎留言提醒我。
.json文件的數據獲取需要通過賦值NSData,再通過NSJSONSerialization 方法將NSData數據轉成NSArray 或NSDictionary進行使用。
.plist文件的數據可以直接進行訪問。
//獲取本地location.json文件內容
@property (nonatomic, strong) NSArray *locData;
- (NSArray *)locData {
if (!_locData) {
NSData *JSONData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"location" ofType:@"json"]];
NSArray *dataArray = [NSJSONSerialization JSONObjectWithData:JSONData options:NSJSONReadingAllowFragments error:nil];
NSMutableArray *newArray = [NSMutableArray array];
for (NSDictionary *dict in dataArray) {
XCFLocation *loc = [XCFLocation locationWithDict:dict];
[newArray addObject:loc];
}
_locData = newArray;
}
return _locData;
}
//獲取本地keywords.plist文件內容
@property (nonatomic, strong) NSArray *hotSearchWords;
- (NSArray *)hotSearchWords {
if(!_hotSearchWords) {
NSDictionary *dataDict = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"keywords" ofType:@"plist"]];
NSArray *array = [NSArray arrayWithArray:dataDict[@"content"][@"keywords"]];
NSMutableArray *mArray = [NSMutableArray array];
for (NSString *word in array) {
[mArray addObject:word];
}
_hotSearchWords = mArray;
}
return _hotSearchWords;
}
//寫入.plist文件
NSString *filename = [[NSBundle mainBundle] pathForResource:@"keywords" ofType:@"plist”];
NSDictionary *dataDict = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"keywords" ofType:@"plist"]];
[dataDict setObject:@"add some content" forKey:@"c_key"];
[dataDict writeToFile:filename atomically:YES];