書「iPhone程序。大書呆子牧場指南」列舉了以下方法(第96頁)使用星號的在變量名
(void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *) views {
MKAnnotationView *annotationView = [views objectAtIndex:0];
id <MKAnnotation> mp = [annotationView annotation];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([mp coordinate], 250, 250);
[mv setRegion:region animated:YES];
}
我,因爲星號的使用混淆。
ObjectType variableName = [object message];
問題:
- 在第一種情況一個星號先於變量名,但不是在以「MKAnnotationView」和一個可以以抽象的方式由下式表示的以下開始的行第二。爲什麼?
- 在使用星號的情況下,不應該是分配給nil的指針嗎?
謝謝。
id實際上是一個指向objc_object結構的指針。 – Max 2011-03-03 01:49:28
@Max:當然,如果你想進入Objective-C的C級實現。 – Anomie 2011-03-03 01:54:42