NSDictionary のカテゴリを作成し、いくつかのメソッドをオーバーライドします 1. writeToFile 2. initWithContentsOfFile.
WriteToFile 関数は完全に機能し、関数が呼び出されます。initWithContentsOfFile が失敗し、拡張関数が呼び出されず、NULL が返されます。
私が行方不明または間違っていることの指針/解決策/ガイダンスはありますか?
同じことが NSString でも機能し、同様のメソッドを呼び出すことができます。
更新 - マイコード
#import <Foundation/Foundation.h>
@interface NSDictionary (TESTDictionary)
-(BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;
-(id)initWithContentsOfFile:(NSString *)path;
@end
実装
#import "NSDictionary+TESTDictionary.h"
@implementation NSDictionary (DMPNSDictionary)
-(BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile{
NSData *someData ;
//
//I process somedata and convert the NSDictionary to NSData here
//
//Write the processed data
return [someData writeToFile:path atomically:useAuxiliaryFile];
}
-(id)initWithContentsOfFile:(NSString *)path{
//Read the file to NSData
NSData *someData = [read from the file here];
//convert the NSData to NSDictionary
self = convertedNSDictionary;
return self;
}
@end
そして、ファイルの1つでそれらを次のように使用します
#import "NSDictionary+TESTDictionary.h"
NSDictionary *xmlDictionary;
//write to file where storepath is in application document directory
[xmlDictionary writeToFile:storePath atomically:YES];
私は次のように読んでみます
NSMutableDictionary *xmlDictionary = [[NSMutableDictionary alloc]initWithContentsOfFile:storePath1];
NSLog(@"Contents ::%@",xmlDictionary);
NSDictionary *xmlDictionary = [[NSDictionary alloc]initWithContentsOfFile:storePath1];
NSLog(@"Contents ::%@",xmlDictionary);
どちらの場合も、Contents を null として取得します。よろしくお願いします。
ニラフ