11

Objective-C (iOS 用) でカスタム ボタン クラスのインスタンス変数をいくつか宣言しようとしています。

@interface PatientIDButton : UIButton {
    NSUInteger patientID;
    NSString * patientName;
}
@end

ただし、これらは現在プライベートであるため、他のクラスからアクセスできる必要があります。それらのアクセサ関数を作成できると思いますが、変数自体を公開するにはどうすればよいでしょうか?

4

1 に答える 1

17

インスタンス変数を公開するには@public、次のようにキーワードを使用します。

@interface PatientIDButton : UIButton {
    // we need 'class' level variables
    @public NSUInteger patientID;
}
@end

もちろん、パブリック アクセスのために「生の」変数を公開する場合の標準的な注意事項をすべて覚えておく必要があります。後で実装を変更する柔軟性を保持できるため、プロパティを使用したほうがよいでしょう。

最後に、パブリック変数にアクセスするには、アスタリスクまたは->演算子を使用して逆参照が必要であることを覚えておく必要があります。

PatientIDButton *btn = ...
btn->patientID = 123; // dot '.' is not going to work here.
于 2013-07-07T02:45:37.897 に答える