2011-07-26 56 views
1

在我的iOS應用程序的viewDidLoad方法中,我有以下代碼行:在我的viewDidLoad中獲取EXC_BAD_ACCESS

loadDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1.0", "version number", nil]; 

它會導致EXC_BAD_ACCESS錯誤。我不知道爲什麼。 viewDidLoad方法中沒有其他任何東西使用該對象,除了該行所在的if/else語句的另一側,因此無法將其釋放。我只是不確定問題是什麼。如果你想看到我的整個viewDidLoad方法,這裏是:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    tapsBackground = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)]; 
    tapsBackground.delegate = self; 
    [self.view addGestureRecognizer:tapsBackground]; 

    saveChangesButton.hidden = YES; 

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    filePath = [documentsDirectory stringByAppendingPathComponent:@"presets.plist"]; 

    if([[NSFileManager defaultManager] fileExistsAtPath:filePath]){ 
     loadDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath]; 
    } 

    else{ 
     loadDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1.0", "version number", nil]; 
     [loadDict writeToFile:filePath atomically:YES]; 
    } 
} 
+0

請張貼完整的錯誤消息。另外,'loadDict'聲明在哪裏? – PengOne

+0

我得到的唯一的錯誤信息是線程1:程序接收到的信號:「EXC_BAD_ACCESS」loadDict聲明在接口 – user663425

+0

也謝謝編輯它。我不是很擅長使用stackoverflow的文本編輯器 – user663425

回答

6

問題是您在第二個字符串中缺少@,即"version number"

loadDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1.0", "version number", nil]; 

它應該是,

loadDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1.0", @"version number", nil]; 
+0

是的,我已經知道了這一點。儘管謝謝!我想我在寫這個論點時正在考慮java = P – user663425

+0

@ user663425 - 考慮接受答案,因爲它是正確的... – MByD

0

我面臨着同樣的問題一次。試試這個,它對我有用:

self.loadDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1.0", "version number", nil]; 

我假設你已經使loadDict屬性。在這種情況下,您可以使用產品>配置文件>分配來針對問題。

+0

,謝謝。這並不是問題,但我後來在我的程序中遇到了這個問題,並試圖修復它,所以謝謝 – user663425

相關問題