[解決済み] Objective-Cで-initメソッドをprivateにすることは可能ですか?
2022-04-30 11:52:37
質問
を隠す(非公開にする)必要があります。
-init
メソッドを作成しました。
どうすればいいのでしょうか?
どのように解決するのですか?
Objective-CにはSmalltalkと同様、privateメソッドとpublicメソッドという概念はありません。 どんなメッセージでも、どんなオブジェクトにも、いつでも送ることができるのです。
できることは
NSInternalInconsistencyException
もし
-init
メソッドが呼び出されます。
- (id)init {
[self release];
@throw [NSException exceptionWithName:NSInternalInconsistencyException
reason:@"-init is not a valid initializer for the class Foo"
userInfo:nil];
return nil;
}
もう一つの方法は、おそらく実際にははるかに良い方法ですが、次のようにします。
-init
は、可能な限り、あなたのクラスに対して何か賢明なことを行ってください。
もし、シングルトン・オブジェクトを確実に使用するために、このようなことをしようとしているのなら、気にする必要はありません。 具体的には、quot;overrideで悩まないでください。
+allocWithZone:
,
-init
,
-retain
,
-release
シングルトンを作成する方法です。 これは事実上常に不要であり、何のメリットもないのに複雑さを増しているだけです。
その代わりに
+sharedWhatever
メソッドでシングルトンにアクセスし、それをヘッダでシングルトンインスタンスを取得する方法として文書化します。 ほとんどの場合、それで十分でしょう。
関連
-
[解決済み] Objective-Cで乱数を発生させる
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] performSelectorのセレクタが不明なため、リークが発生する可能性があります。
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] Objective-Cで、オブジェクトの種類をテストするにはどうしたらいいですか?
-
[解決済み] Objective-Cで抽象クラスを作成する
-
[解決済み】isEqual:とハッシュをオーバーライドするためのベストプラクティス
-
[解決済み】ARCで@autoreleasepoolがまだ必要なのはなぜですか?
-
[解決済み] Objective-Cでは、なぜself = [super init]がnilでないことを確認する必要があるのですか?
最新
-
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でオブジェクトをキャストする方法
-
[解決済み] Objective-Cは構造体の使用を禁じていますか?
-
[解決済み] Objective-Cで抽象クラスを作成する
-
[解決済み] NSDictionary または NSMutableDictionary にキーが含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] CocoaPodsを使用している場合、.gitignoreには何が入るのでしょうか?
-
[解決済み] 「NSString *' 型のパラメータに 'const NSString *' を送ると修飾子が破棄される」警告
-
[解決済み] newの代わりにalloc initを使用する
-
[解決済み】浮動小数点以下が2桁しか表示されないようにする
-
[解決済み】セマンティックな問題。プロパティの合成ゲッターは、「所有する」オブジェクトを返すためのCocoa命名規則に従っている。
-
[解決済み] [Solved] UITableViewがReloadDataを完了したことを伝えるには?