我有一个由[NSMutableArray writeToFile]从NSMutableArray编写的plist。尝试使用以下代码加载同一个plist时:
NSArray *testArray = [NSArray arrayWithContentsOfFile:[self pathForDataFile:@"reportingSpeicher.plist"]];
NSLog(@"count = %@",[testArray count]);
我在计数或我在testArray上尝试的任何其他操作上获得了错误的访问权限。但是:
NSLog(@"testArray = %@", testArray);
正确返回:
testArray = (
{
benutzername = "t.h";
datum = "2010-07-15";
dauerInStunden = 1;
phasenName = "Projektsteuerung,32";
projektName = "projekt AG,23";
soapSpeicher = {
PasswortAsMD5 = someMD5sum;
benutzername = "t.h";
datum = "2010-07-15";
dauerInStunden = 1;
phasenid = 32;
projektid = 23;
taetigkeit = whateveryoudid;
};
taetigkeit = whateveryoudid;
} )
我猜测有一些基本的内存管理或返回的类型以某种方式被破坏/不是NSArray。这三行应该非常简单 - 我无法让它发挥作用。我很感激任何帮助!
答案 0 :(得分:0)
您需要先初始化数组。使用NSArray *testArray = [[NSArray alloc] initWithContentsOfFile:[self pathForDataFile:@"reportingSpeicher.plist"]];
。
答案 1 :(得分:0)
您的NSLog语句不正确。打印出Objective-C对象时使用%@格式字符串,但[testArray count]返回一个普通的int,当NSLog尝试发送一条-description
消息打印出来时,这会导致崩溃。您将需要使用%d来打印整数值。
NSLog(@"count = %d",[testArray count]);