2013-09-28 9 views
8

저는 이틀 동안 이상한 문제로 고생하고 있습니다. 나는 SO에 관한 모든 관련 질문을했지만 아무도이 문제를 해결하지 못했습니다. 나는 Xcode5에서 일하고있다. ARC와 CoreData를 사용하고 있습니다.[CFString release] : 할당 된 인스턴스로 메시지가 전송되었습니다.

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 문자열 속성을 특징으로 코어 데이터의 실체를 .

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] 

그들은 비록 엑스 코드 4.6.x에서 발생한 적이 : 그것은 @property (nonatomic, strong) ReservationModule *reservationModule;

로 뷰 컨트롤러에 좀비의 역사를 정의합니다. 도움을 주시면 감사하겠습니다.

감사합니다.

+0

이 ARC 나를 도왔다를 지정하지 않는 한, 예를 들어, 이름이 신규로 시작하는 속성을 선언 할 수 없음을 의미합니다/10596942/3411787 –

답변

27

대답은 간단하다 및 유지 카운터 할 수없는 것도있다 ...

나는 그것이 가능 ARC와 new로 시작하는 이름의 변수/속성에 허가되어 있지 않은 것을 우연히 목격했다. 이것은 분명히 따라서 애플의 문서에서

... 오류를 생성하는 동안 릴리스 결과 : https://developer.apple.com/library/ios/releasenotes/objectivec/rn-transitioningtoarc/introduction/introduction.html

수동 유지 릴리스 코드와 상호 운용을 허용하려면, ARC는 메소드 이름에 제약 조건을 부과 :

접근 자에게 new로 시작하는 이름을 지정할 수 없습니다. http://stackoverflow.com/a이 차례로 는 다른 게터

+0

속성 예; 이것은 로컬 변수 *에는 적용되지 않습니다. –

+2

그리고 여전히 신속한 코드에서 발생할 수 있습니다. ("new_notifications_count"라는 CoreData 속성의 문제를 추적하는 데이 답변을 사용했습니다. – christophercotton

+1

OMG 고맙습니다. !!!! 이상한 문제는 ... –