読者です 読者をやめる 読者になる 読者になる

ObjecTips

基本Objective-Cで iOS とか OS X とか

EKStructuredLocation の Private なプロパティ

Private API EventKit EKStructuredLocation

EKStructuredLocation の公開ヘッダでは

@property(nonatomic, retain) NSString     *title;
@property(nonatomic, retain) CLLocation   *geoLocation;
@property(nonatomic) double                radius; // 0 = use default, unit is meters

の3つのプロパティが定義されているが

NSLog(@"%@", [[EKStructuredLocation allloc] init]);

インスタンスの description をログ出力すると

EKStructuredLocation <0x7f981bf4a510> {title = (null); address = (null); geo = (null); abID = (null); routing = (null); radius = 0.000000;}

と、未公開のパラメータについても内容が表示される。
Private API を調べてみると、いずれも NSString クラスで address addressBookEntityID routing というプロパティが存在しているらしい。

本来は完全に Private な扱いのデバッグ用のものが表示されてしまっているだけなのかも知れないが、将来のOSでこのあたりのプロパティが公開プロパティになるかも?知れない。