2009-09-11 4 views
0
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *myPlistPath = [documentsDirectory stringByAppendingPathComponent:@"Accounts.plist"]; 

NSArray *arr = [NSArray arrayWithContentsOfFile:myPlistPath]; 

int count = 0; 
for (NSDictionary *dict in arr) { 
     count += dict.count; 
} 

return count; 

Что я делаю неправильно?Что я делаю неправильно в своем коде?

Я получаю следующую ошибку с приведенным выше кодом: Полученный сигнал программы: «EXC_BAD_ACCESS».

+0

В каком случае вы получаете сигнал? на какой линии? вы прошли через код в отладчике? Я предполагаю, что «пути» пустые. – Justicle

ответ

3

EXC_BAD_ACCESS обычно является ошибкой памяти, возможно, вызванной плохим адресом.

Начала распечатав paths, documentsDirectory, myPListPath и arr (адрес, а не содержимое) сразу же после того, как вы установите их, чтобы увидеть, если любой из них был установлен в NULL.

0

Попробуйте распечатать myPListPath и убедитесь, что файл, на который он ссылается, фактически существует и является правильным форматом. Если вы спросите меня, есть вероятность, что на этой линии:

NSArray *arr = [NSArray arrayWithContentsOfFile:myPlistPath]; 

что-то происходит не так, и arr становится установлено нулевое значение.

Смежные вопросы