2013-09-28 125 views
8

我一直在爲一個奇怪的問題掙扎了兩天。我經歷了所有關於SO的相關問題,但都沒有解決這個問題。我正在研究Xcode5。我正在使用ARC和CoreData。[CFString發佈]:發送到釋放實例的消息

在iOS7(仿真器):

`[CFString release]: message sent to deallocated instance` 

Thread 1, Queue : com.apple.main-thread 
0 0x03c7d3ba in __kill() 
1 0x03c7c4b8 in kill$UNIX2003() 
2 0x0347a921 in ___forwarding___() 
3 0x0347a4ee in _CF_forwarding_prep_0() 
4 0x02b7b002 in -[NSConcreteAttributedString dealloc]() 
5 0x02f66692 in objc_object::sidetable_release(bool)() 
6 0x02f65e81 in objc_release() 
7 0x02f66ce7 in (anonymous namespace)::AutoreleasePoolPage::pop(void*)() 
8 0x00739bc4 in CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*)() 
9 0x0345253e in __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__() 
10 0x0345248f in __CFRunLoopDoObservers() 
11 0x034303b4 in __CFRunLoopRun() 
12 0x0342fb33 in CFRunLoopRunSpecific() 
13 0x0342f94b in CFRunLoopRunInMode() 
14 0x04bd19d7 in GSEventRunModal() 
15 0x04bd17fe in GSEventRun() 
16 0x0196794b in UIApplicationMain() 
17 0x0000262d in main 

殭屍儀器指向哪裏設定該單元的文本標籤的第二行:

cell.txtLabel.text = _reservationModule.newReservationText; 
cell.subtitleTxtLabel.text = _reservationModule.newReservationSubtitle; 

_reservationModule是表徵字符串特性的核心數據實體。它在視圖控制器定義爲@property (nonatomic, strong) ReservationModule *reservationModule;

殭屍歷史:

Event Type ∆ RefCt RefCt Timestamp Responsible Library Responsible Caller 
Malloc/Retain/Release (4) 01:01.114.922 CoreData _prepareResultsFromResultSet 
0 Malloc +1 1 01:01.114.922 CoreData _prepareResultsFromResultSet 
1 Retain +1 2 01:01.116.184 CoreData -[_CDSnapshot mutableCopy] 
2 Release -1 1 01:01.318.588 MyApp  -[ReservationModuleChoice2ViewController configureSubtitleImageTableViewCell:atIndexPath:] 
3 Release -1 0 01:05.004.359 CoreData -[_CDSnapshot dealloc] 
4 Zombie  -1 01:07.441.465 CoreData -[_CDSnapshot dealloc] 

他們從來沒有在Xcode中4.6.X發生雖然。 任何幫助,高度讚賞!

謝謝!

+0

這有助於我ARC宣佈其名稱 開始新的屬性:http://stackoverflow.com/a/10596942/3411787 –

回答

27

答案是微不足道,並沒有任何與保留櫃檯...

我監督,這是不允許的名字變量/屬性開始new與ARC啓用。這顯然導致了過度的釋放從而產生錯誤......

從蘋果文檔:https://developer.apple.com/library/ios/releasenotes/objectivec/rn-transitioningtoarc/introduction/introduction.html

要允許帶有手動保留釋放代碼的互操作,ARC強加給方法命名一個 約束:

您不能給訪問者一個以新開頭的名字。這反過來 意味着你不能,例如,除非您指定一個不同的吸附

+0

屬性yes;這不適用於本地*變量*。 –

+2

和SWIFT代碼仍然可以發生:(只用這個答案來幫助追查一個名爲「new_notifications_count」 – christophercotton

+1

OMG THANK YOU SO MUCH一個CoreData屬性問題!!!!哇靠,這真是個奇怪的問題... –

相關問題