[解決済み] cocoa objective-cのクラスで変数の前にアンダースコアを付けるとどうなるのでしょうか?
2022-04-26 21:32:23
質問
iPhoneのサンプルで、属性が変数の前にアンダースコア_を使用しているのを見かけました。これはどういう意味か、どなたかご存知ですか?またはどのように機能するのでしょうか?
私が使っているインターフェースファイルは、以下のようなものです。
@interface MissionCell : UITableViewCell {
Mission *_mission;
UILabel *_missionName;
}
@property (nonatomic, retain) UILabel *missionName;
- (Mission *)mission;
上記が何をするのか正確にはわからないのですが、ミッション名をこう設定しようとすると
aMission.missionName = missionName;
エラーが出ます。
構造体または共用体でないものに、メンバ 'missionName' を要求しています。
解決方法は?
ivar にアンダースコアの接頭辞を使用する場合 (これは一般的な慣習に過ぎませんが、便利なものです)、 (プロパティ用の) 自動生成アクセッサがどの ivar を使用するかを知るために、1 つの追加事項を実行する必要があります。 具体的には、あなたの実装ファイルの中で、あなたの
synthesize
は次のようになります。
@synthesize missionName = _missionName;
より一般的に言えば、これは
@synthesize propertyName = _ivarName;
関連
-
[解決済み】Xcode - 'NSUnknownKeyException', reason: ... this class is not key value coding-compliant for the key X" エラーの修正方法とは?
-
[解決済み] 変数が「未定義」または「NULL」であるかどうかを判断するにはどうすればよいですか?
-
[解決済み] Bashで変数が設定されているかどうかを確認する方法は?
-
[解決済み] Objective-Cで、ある文字列が他の文字列を含んでいるかどうかを調べるにはどうすればよいですか?
-
[解決済み] 変数が存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] Objective-Cでデリゲートを作成するにはどうしたらいいですか?
-
[解決済み] Objective-Cで抽象クラスを作成する
-
[解決済み] objective-c/cocoaで例外を投げる
-
[解決済み】Windows版Objective-C
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] MPProgressHUDとNSSessionを使用したデータシンクの読み込み
-
[解決済み] エラー: バイナリ式のオペランドが無効です ('float' と 'float')
-
[解決済み] FBLoginVIewをカスタマイズするには?
-
[解決済み] objcの "pi "と "M_PI "の違いは何ですか?
-
[解決済み] 「NSString *' 型のパラメータに 'const NSString *' を送ると修飾子が破棄される」警告
-
[解決済み】iOS 7で非推奨のsizeWithFont:の代わりになるものは?
-
[解決済み】タイトル変更時に不要なUIButtonのアニメーションを停止させる方法は?
-
[解決済み】Windows版Objective-C
-
[解決済み】Swiftコンパイラーエラー。"フレームワークモジュール内の非モジュラーヘッダー"
-
[解決済み] registerForRemoteNotificationTypes: は iOS 8.0 以降でサポートされていません。