2013-02-12 38 views
1

當我在模擬器中啓動我的應用程序時,它立即崩潰與「錯誤:內存讀取失敗」iOS:模擬器中的最大內存?

一切工作正常在iPad/iPhone,但是當我添加一個簡單的「返回」核心數據線之前,模擬器精細啓動:

return; 
CCAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 
NSManagedObjectContext *context = [appDelegate managedObjectContext]; 

注意!!: 它不會隨時運行代碼,只需編譯它。如果我添加「返回」;在另一個文件中的相同核心數據連接之前,它運行正常。看起來像核心數據有某種最大的「連接」或某種東西?

我試過清洗Xcode(正常和乾淨的生成文件夾),清洗模擬器(重置內容和設置),但沒有成功。

附加問題:有沒有辦法可以重新安裝IOS模擬器?

+0

發現,這是該項目的代碼線的量。如果我刪除一些行(或者只是添加一個返回;),否則在項目中的位置,然後模擬器不會崩潰。真奇怪!!當我編寫代碼並在開始時崩潰的時候 - 我只是在項目的某個地方刪除(rem)代碼,我現在不需要它,並且它再次運行正常......?!?!?! – Romo 2013-02-12 20:49:32

回答

2

「錯誤:內存讀取失敗」。今天早上我收到了同樣的信息。我發現它與Block有關。

我們知道,如果一個類有一個塊作爲其成員,它應該是這個樣子:

@property(nonatomic, copy)BlockType block; 

我的錯誤是忘記當塊添加到一個NSArray的實例使用副本:

[array addObject:aBlock]; 

最後我解決了它本:

MyBlockType copy = [aBlock copy]; 
[array addObject:copy]; 
[copy release]; 

祝你好運!

Upate Mar/20/1013 另一種情況會導致「錯誤:內存讀取失敗」。

- (void)blockCalledMethod{ 
    for (BlockType b in _dictionary) { 
     b(self); 
    } 
} 

解決我的問題的關鍵是通過使用.allKeys迭代NSDictionary。 但字典中的對象是Block,所以它必須與Block相對。

+0

任何想法你怎麼調試這個,發現它是與塊做? – BlueFish 2013-03-07 00:25:17

+0

不知道,我找到了,因爲我修好後,我的代碼運行良好。 – CopperCash 2013-03-15 02:44:09

+0

感謝您的答覆,幫助。 – user1244109 2013-04-10 15:59:19

0

我有我的iPhone模擬器相同的問題。我有乾淨的代碼的XCode

enter image description here

,我已經重置模擬器

enter image description here

希望這將有助於