2013-08-21 29 views
-3

我卡在這個不良的內存訪問錯誤。我試圖尋找「殭屍」,因爲我在其他帖子中閱讀,但沒有運氣!我正在使用自動引用計數。EXC_BAD_ACCESS與基於ARC的應用程序,沒有想法

唯一讓我懷疑的是我昨天更改了項目文件夾的名稱,並且出現了很多錯誤,在我修復之後。然後當項目再次運行時,我沒有對代碼做任何特別的改變,所以我真的不明白。

即使按鈕的IBAction中的方法調用被註釋了,我們仍然得到了錯誤,但單擊按鈕後會發生這種情況。

我遇到了.pch文件plist的問題,將項目的所有文件夾重新定位到新路徑(昨天完成)。

* thread #1: tid = 0xadfee, 0x0000000000000000, queue = 'com.apple.main-thread, stop reason = EXC_BAD_ACCESS (code=1, address=0x0) 
    frame #0: 0x0000000000000000 
    frame #1: 0x00007fff8c6ab460 AppKit`-[NSUserDefaultsController _invokeSingleSelector:withArguments:onKeyPath:] + 99 
    frame #2: 0x00007fff8c6e9c31 AppKit`-[NSObject(_NSBinderKeyValueCodingAdditions) _invokeSelector:withArguments:onKeyPath:] + 745 
    frame #3: 0x00007fff8c311cbd AppKit`-[NSBinder _invokeSelector:withArguments:onKeyPath:ofObject:mode:raisesForNotApplicableKeys:] + 234 
frame #4: 0x00007fff8c3121d0 AppKit`-[NSBinder invokeSelector:withArguments:forBinding:error:] + 173 
frame #5: 0x00007fff8c2e2f1e AppKit`-[NSActionBinder _invokeSelector:withArguments:forBinding:] + 131 
frame #6: 0x00007fff8c2e375f AppKit`-[NSActionBinder _performActionWithCommitEditing:didCommit:contextInfo:] + 314 
frame #7: 0x00007fff8c6ed096 AppKit`_NSSendCommitEditingSelector + 267 
frame #8: 0x00007fff8c39a288 AppKit`-[NSController _controllerEditor:didCommit:contextInfo:] + 182 
frame #9: 0x00007fff91655d4c CoreFoundation`__invoking___ + 140 
frame #10: 0x00007fff91655bb4 CoreFoundation`-[NSInvocation invoke] + 308 
frame #11: 0x00007fff916f87f6 CoreFoundation`-[NSInvocation invokeWithTarget:] + 54 
frame #12: 0x00007fff89b38117 Foundation`__NSFireDelayedPerform + 333 
frame #13: 0x00007fff916d17a4 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20 
frame #14: 0x00007fff916d12df CoreFoundation`__CFRunLoopDoTimer + 1151 
frame #15: 0x00007fff9174296a CoreFoundation`__CFRunLoopDoTimers + 298 
frame #16: 0x00007fff9168cb55 CoreFoundation`__CFRunLoopRun + 1525 
frame #17: 0x00007fff9168c325 CoreFoundation`CFRunLoopRunSpecific + 309 
frame #18: 0x00007fff8ccd7b1d HIToolbox`RunCurrentEventLoopInMode + 226 
frame #19: 0x00007fff8ccd7793 HIToolbox`ReceiveNextEventCommon + 173 
frame #20: 0x00007fff8ccd76ca HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 65 
frame #21: 0x00007fff8bf5a5fe AppKit`_DPSNextEvent + 1434 
frame #22: 0x00007fff8bf59c4b AppKit`-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122 
frame #23: 0x00007fff8bf4dbbc AppKit`-[NSApplication run] + 553 
frame #24: 0x00007fff8bf38a53 AppKit`NSApplicationMain + 940 
frame #25: 0x0000000100001dd2 Mp3_Radar`main(argc=3, argv=0x00007fff5fbff838) + 34 at main.m:13 
frame #26: 0x0000000100001da4 Mp3_Radar`start + 52 

(LLDB)

編輯:我發現這個問題。 按鈕綁定「目標」被設置爲用戶默認控制器,取消選中這個技巧。也許我意外地激活了這個選項,然後繼續做一些事情,並忘記了這種改變..無論如何感謝每個人試圖幫助我。 我知道我的語法並不完美,是否有理由對此問題進行否定的投票?我只是想解決一個問題,而英語不是我的母語。 無論如何,我希望這篇文章能夠幫助別人!

+0

從您的堆棧跟蹤中可以看出您正在使用NSTimer調用某種方法。可能是計時器試圖執行某個選擇器的對象已被釋放,導致訪問不良。 –

+0

我正在使用FileSystem Events來跟蹤文件夾中的更改,也許它使用了一個計時器(我猜測)。在fsevents流初始化方法我有「runLoop」。我不使用任何其他計時器。它的奇怪,昨天相同的代碼工作.. – Benz

+2

你有在你的計劃啓用NSZombies?那麼你應該至少能夠告訴你殭屍是什麼類型的對象。 –

回答

1

您是否檢查過該按鈕是否連接了正確的IBAction?你說你做了一些重命名和移動文件。有時會發生連接丟失,您只有在點擊某個按鈕時纔會知道該連接嘗試將操作消息發送給無效的選擇器。

+0

是的,所有的連接都很好。事實上,IBAction被調用,在做完所有的東西之後,崩潰(但是我可以看到它起作用,因爲它移動了一些文件)。 – Benz

+1

您是否嘗試在代碼中放置斷點來嘗試縮小發生崩潰的部分? – Abizern

+0

這就是問題所在!我試圖一步一步地進行調試,但是在調試器進入彙編代碼時出現錯誤,至少我不太明白。 – Benz

相關問題