plist にデータを読み書きするクラスに問題があります。ここにいくつかのコードがあります:
この最初のチャンクは、すべての plist 読み取りおよび書き込みメソッドを含むカスタム クラスからのものです。
-(NSString *) dataFilePath{
NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectory = [path objectAtIndex:0];
return [documentDirectory stringByAppendingPathComponent:@"userInformation.plist"];
}
-(bool)readUserIsMale{
NSString *filePath = [self dataFilePath];
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
NSDictionary *boolDict = [[NSDictionary alloc] initWithContentsOfFile:[self dataFilePath]];
return [[boolDict objectForKey:@"boolUserIsMale"] boolValue];
}
return nil;
}
-(void)writeUserIsMale:(bool)boolValue{
NSDictionary *boolDict = [[NSDictionary alloc] init];
[boolDict setValue:[NSNumber numberWithBool:boolValue] forKey:@"boolUserIsMale"];
[boolDict writeToFile:[self dataFilePath] atomically:YES];
}
次に、別のクラスで必要なインポート、作成、およびクラス メソッドの使用を行います。
#import "plistReadWrite.h"
plistReadWrite *readWrite;
コンソールでその値を確認しようとすると、(null) が返されます。
NSLog(@"%@",[readWrite readUserIsMale]);
これはもちろん、次のようなデータを書き込んだ後です。
[readWrite writeUserIsMale:isUserMale];
isUserMale
ブール値であること。
さらに情報が必要な場合はお知らせください。ありがとう。