ObjecTips

Swift & Objective-C で iOS とか macOS とか

EKStructuredLocation の Private なプロパティ

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でこのあたりのプロパティが公開プロパティになるかも?知れない。