2012-04-20 1 views
0

iOS에서 objRectCGRect 개체입니다. 이 코드는 라인iOS에서 objRect를 사용할 수 있지만 NSLog (@ "% @", objRect)가 잘못된 메모리 액세스를 유발하는 이유는 무엇입니까?

NSLog(@"%@", objRect); 

잘못된 메모리 액세스 (EXC_BAD_ACCESS)을하게됩니다,

if (objRect.origin.x > 0) { 
    // do something 
} 

으로하지만, 그 아래에 잘 실행하고 프로그램이 중지됩니다. 왜 그런가요? 그렇지 않으면 개체를 인쇄 할 수 있습니까?

답변

3

CGRect는 Objective-C 개체가 아니므로 [objRect description]에 응답 할 수 없습니다 (% @는 무엇을 의미합니까). 당신이 당신의 CGRect를 기록하려면

struct CGRect { 
    CGPoint origin; 
    CGSize size; 
}; 
typedef struct CGRect CGRect; 

, 당신은 NSStringFromCGRect을 사용할 수 있습니다 : 구조입니다.