[解決済み] Objective-CのReadonlyプロパティ?
2023-01-18 17:31:21
質問
インターフェースの中で、読み取り専用のプロパティをこのように宣言しました。
@property (readonly, nonatomic, copy) NSString* eventDomain;
プロパティを勘違いしているのかもしれませんが、宣言するときに
readonly
と宣言すると、実装の内部で生成されたセッターを使うことができます(
.m
) ファイル内で使用することができますが、外部エンティティは値を変更することができません。
このSOの質問
は、それが起こるべきであることを述べています。それは私が追い求めている動作です。しかし、標準的なセッターやドット構文を使って
eventDomain
を init メソッド内に設定しようとすると、それは
unrecognized selector sent to instance.
というエラーが発生します。もちろん、私は
@synthesize
をプロパティの中に入れています。こんな風に使おうとしています。
// inside one of my init methods
[self setEventDomain:@"someString"]; // unrecognized selector sent to instance error
というのは、私が誤解しているのは
readonly
の宣言を誤解しているのでしょうか?それとも、何か他のことが起こっているのでしょうか?
どのように解決するのですか?
セッターも必要であることをコンパイラに伝える必要があります。一般的な方法は、それを クラス拡張 に記述することです。
@interface YourClass ()
@property (nonatomic, copy) NSString* eventDomain;
@end
関連
-
[解決済み] Objective-CでNSStringsを連結するためのショートカット集
-
[解決済み] Objective-Cの定数
-
[解決済み] JavaScriptでオブジェクトのキー/プロパティの数を効率的にカウントする方法
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] Objective-Cのtypedef enumとは何ですか?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み】C#には拡張プロパティがある?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] Objective-Cです。複数の引数を持つセレクタを呼び出す
-
[解決済み] 警告 "format が文字列リテラルでなく、format の引数がない場合"
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Objective-CでNSArrayを新しいNSArrayにフィルタリングする。
-
[解決済み] Objective-Cのセレクタ?
-
[解決済み] 2つの日付の差を計算するにはどうすればよいですか?
-
[解決済み] iOSのBackground Threadの起動
-
[解決済み] IOSのUIViewからアプリケーションのドキュメントフォルダに画像を保存する
-
[解決済み] Objective-Cのプロテクトメソッド
-
[解決済み] BOOLプロパティの使用
-
[解決済み] 「アプリケーションはアクティブなコントローラを表示しようとした」?
-
[解決済み] iOS 6 の補完ブロックの dispatch_get_current_queue() の代わりとなるものは?
-
[解決済み] Category is implementing method which will be implemented by its primary class" の警告を抑制する。