나는 C에서 한 변수를 다른 타입으로 캐스팅하는 것이 컴파일러에게 마치 그 변수가 그 타입과 메모리의 크기 인 것처럼 행동한다는 것을 알고있다.하나의 Objective C 객체를 다른 것으로 캐스팅 할 때 컴파일러 레벨에서 어떤 일이 일어나는가?
예 :
int* a = (char*)b;
는 (1 바이트 메모리 어드레스이다) (b)의 값을 취하며 4 바이트에 해당 변수를 저장한다. (내가 틀렸다면 수정하십시오)
Objective-C 객체를 캐스팅하는 방법은 어떻게 작동합니까? 는 또한 각 개체 등의 클래스 인스턴스를 변수 목록에 대한 포인터를 잡고 단지 C 구조체 것을 이해
내가있는 UIView의 서브 클래스 MYVIEW 전화를 나는에 대한 포인터를 전달하고있는 클래스가있는 경우
-(id)setupThisViewForMe:(UIView*)aView {
MyView* newView = (MyView*)aView;
newView = [[MyView alloc]initWithFrame:CGRectMake(0.0f,0.0f,100.0f,100.0f)];
[newView takeOverTheWorldWithMyMethodInSubclass];
return newView;
}
정확히 컴파일러는 컴파일시에 일을 무엇 : 어쩌면 방법 인수의 UIView, 나는 이렇게?
+1 사실만큼이나 많은 질문을하게되며, 나중에 질문하게됩니다. :) –