2012-03-18 3 views
0

사용자 지정 개체에 작업을 보내려고하면 EXC_BAD_ACCESS가 표시됩니다. 나는 UIStoryboard의 유무에 관계없이 ARC의 유무에 관계없이 테스트를 수행했습니다. 정말 이상해. 개체가 올바르게 인스턴스화 된 것 같습니다. - (id) init가 호출되고 - (void) awakeFromNib도 호출됩니다. test-xib에서 객체를 추가하고이를 사용자 정의 클래스에 연결했습니다. IBOutlet을 아무 문제없이 연결할 수 있습니다. 동작 만 충돌합니다. 어떤 아이디어?사용자 지정 개체에 작업을 보내면 ios5.1, xcode 4.3.1에서 응용 프로그램이 손상됩니다.

SimpleObj.m

#import <UIKit/UIKit.h> 

@interface SimpleObj : NSObject 
-(IBAction)simpleTest:(id)sender; 
@end 

SimpleObj.h는

#import "SimpleObj.h" 
@implementation SimpleObj 
-(IBAction)simpleTest:(id)sender{ 
    NSLog(@"Test"); 
} 
@end 
+0

NSZombieEnabled를 테스트하면 맞춤 개체가 이미 출시되었음을 알 수 있습니다. 따라서 사용자 정의 객체는 인스턴스화되고 즉시 해제됩니다.이 사용자 정의 객체를 보유하는 유일한 방법은 파일 소유자에서 참조하는 것입니다. – fragglechen

+0

자신이 알았 으면 문제는 초기화 및 IBAction 코드가 아닌 개체 사용에 있습니다. 이 질문에 대한 답변을 얻으려면 관련 코드를 게시해야합니다. – Mundi

+0

@fragglechen, 오른쪽, 지역 변수가 공개되거나 유출되며 참조가 유효하지 않습니다. –

답변

0

사용자 정의 개체에 대한 참조 시간이 액션 화재에 의한 허상 포인터이다. 장면의 최상위 객체는 자동으로 렌더링되기 때문에 계속 유지하려면 해당 객체를 유지해야합니다.