2012-02-21 3 views
1

주석 처리 된 행에이 오류가 표시됩니다. datachoice는 UserData의 Object이지만 외부에 있지만 가져 왔습니다. 나는 .h에서 datesave를 유지했는데, 무엇이 합류하고 있는지 모른다.포인터에 NSDate를 전달할 때 EXC_BAD_ACCESS

.H

#import <UIKit/UIKit.h> 

@interface DateViewController : UIViewController 

@property (strong, retain) IBOutlet UIDatePicker *datepick; 
@property (strong, retain) IBOutlet NSDate *datesave; 


- (IBAction)okDatebutton:(id)sender; 

@end 

하는 .m

-(IBAction)okDatebutton:(id)sender { 

datesave = [datepick date]; 
datechoice->date = datesave; //<-----------------here is the EXC_BAD_ACCESS 



} 
@end 
+0

'datesave'에 대한 할당 직후 NSLog ("% p", datechoice)'를 추가하고, null이 아닌 것이 로그에 출력되는지보십시오. – dasblinkenlight

+0

당신은 무엇을 의미하니 : * "datachoice는 UserData의 Object이지만 외부에 있지만 가져 왔습니다."*? 해당 코드를 표시 할 수 있습니까? – sch

답변

2

절대 (*) 객체에 -> 연산자를 사용하지 마십시오.

self.datechoice.date = datesave; 

(*)가 요구 될 수있는이 규칙에 obscure exception있다,하지만 아이폰 OS 만 Mac에 적용되지 않습니다 : 당신은 의미했다.

+0

datachoice가 'extern'-ed 글로벌 인 것처럼 보입니다. 따라서 OP는 아마도'self '를하고 싶지 않을 것입니다. – dasblinkenlight

+0

책을 주셔서 감사합니다. 재미있는 읽을 거리입니다. dasblinkenlight

+0

날짜 선택이 UserDate의 외부 개체이기 때문에 스스로 할 수 없습니까, 아니면 할 수 있습니까? 나는 당신이 의미하는 것을 이해하지 못할 수도 있습니다. 감사합니다 .. – user1191343

1

당신은 ARC를 사용하고 있습니까? 나는 당신의 부동산 정의가 틀린 것 같아요.

정확히 기억한다면 strong은 ARC에서만 유효하며 retain은 ARC 없이만 유효합니다. 그게 문제라면 컴파일 할 수있어서 놀랍습니다.

+0

'보유'는 ARC에서 유효합니다. 그것은 '강한'의 동의어로 취급됩니다. 당신은 그 정의가 틀렸다는 것이 맞지만 그게 원인이라고 생각하지 않습니다. –

+0

약하게 변경됩니까? – user1191343

+0

또는'(nonatomic, retain) ' – user1191343