在下面的代碼,我嘗試從一個plist中讀取數據:EXC_BAD_ACCESS試圖讀取一個NSArray
-(void)readPreferences
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray * myAppDefaults = [defaults mutableArrayValueForKey:@"LastList"];
myCustomObject * savedObject;
NSUInteger i;
for (i = 0; i < [myAppDefaults count]; i++)
{
NSArray * thisArray = [myAppDefaults objectAtIndex:i];
savedObject.value1 = [thisArray objectAtIndex:0];
savedObject.value2 = [thisArray objectAtIndex:1];
savedObject.value3 = [thisArray objectAtIndex:2];
savedObject.value4 = [myAppDefaults objectAtIndex:3];
[objectsArray addObject:savedObject];
}
}
不知怎的,當我嘗試設置「savedObject.value1」,我得到一個「EXC_BAD_ACCESS」錯誤。
我意識到這很可能是基本的內存管理,或者指針/對象的一種混淆,但我仍然在學習。 我希望有人能幫助我。 致以問候 Sjakelien
根據文檔,mutableArrayValueForKey是「可用於iPhone OS 2.0及更高版本」。 無論如何,返回的值不是零。它包含12個對象。我想這就是問題所在。 savedObject.value1是一個NSString,而objectAtIndex:0是一個對象。也許我應該以某種方式轉換它? – Sjakelien 2009-06-21 14:58:58
所有NSStrings(即NSString對象)都是對象。 – 2009-06-21 20:46:30