2010-03-28 6 views
8

self.view에 액세스하여 표시 할 수 있으며 로그에서 프레임을 볼 수 있지만 self.view.frame에 액세스하려고하면 null이됩니다. self.view.framenull하지만 self.view 프레임을 보여줍니다 왜Objective-C self.view는 액세스 할 수 있지만 self.view.frame은 액세스 할 수 없습니다.

2010-03-28 11:08:43.373 vivmed_CD_Tab[20356:207] Show self.view:<UITableView: 0x4001600; frame = (0 0; 320 583); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x3b21270>> 
2010-03-28 11:08:43.373 vivmed_CD_Tab[20356:207] Show self.view.frame:(null) 

사람이 설명 할 수 - 아래는

NSLog(@"Show self.view:%@",self.view); 
NSLog(@"Show self.view.frame:%@",self.view.frame); 

의 로그 출력은? 내 목표는 프레임 크기를 변경하는 것입니다.

건배, 그랜트 당신이 게시 한 코드에서

답변

19

하나의 문제는 당신이 작동하지 않습니다 객체와 같은 프레임 (A CGRect)를 인쇄하고 있다는 점이다. 시도 :

NSLog(@"Show self.view.frame: %u", self.view.frame); // as a pointer 

NSLog(@"Show self.view.frame: %@", NSStringFromCGRect(self.view.frame)); // as a string 
+4

맞아요! CGRect의 처음 두 필드는 0이 될 것이므로 Obj-C 런타임은이를 null 클래스 포인터가있는 객체로 해석합니다. 프레임의 원점이 다른 경우 충돌이 발생합니다. – codewarrior

관련 문제