問題タブ [class-cluster]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - NSString インスタンスは、そのクラスを NSCFString として報告します
ここでの私の目的は非常に単純です。NSString
いくつかのテスト データに を設定してから、クラスを返す必要がありますNSString
。これが私のコードです:
ログによると、クラスはNSCFString
ではなくNSString
です。何が起きてる?
objective-c - Objective-C のいわゆる「クラス クラスタ」とは正確には何ですか?
NSArray はまさにそのようなものだと読んでいました。重そうです。私のデスクには、Objective-C、Cocoa、および C に関する非常に分厚い本が 7 冊あります。クラス クラスタについて言及しているものはありません。少なくとも本の巻末の索引には見つかりません。それで、それは何ですか?
iphone - NSMutableArrayを反復するときの「スコープ外」エラー
このループで「url」変数にアクセスしようとすると、「範囲外」エラーが発生するのはなぜですか?
「self.winnerImageURLs」NSMutableArray内の非常にアイテムのクラスはNSCFStringとして返されるため、ここでの取引が何であるかはわかりません。
私が間違っていることについてのアイデアはありますか?
ありがとう
iphone - クラス クラスタの初期化
私の iPhone アプリには抽象クラス WorkingView があります。UIView のサブクラスです。WorkingView には、具体的なサブクラスがたくさんあります。そのうちの 2 つは SimplifyView と MultiplyView です。
WorkingView の新しいインスタンスを作成するメソッドを作成しようとしています。このメソッドには渡されたモードがあり、適切な具象サブクラスのインスタンスを返す必要があります。この質問への回答によると、これは私がこれまでに持っているものです:
ここまでは順調ですね。しかし、ここに問題があります。SimplifyView の init メソッドでは、UIView の init メソッドを通じてオブジェクトを実行する必要があります。[super initWithFrame: frame] を呼び出すと、WorkingView だけが表示され、UIView までは表示されません。UIView の initWithFrame: メソッドを呼び出す initWithFrame: メソッドを WorkingView に作成できると思いますが、それはハックのように感じます。
これを処理する適切な方法は何ですか?
ruby - Rubyで「クラスクラスタ」(具象サブクラスのインスタンスを持つファクトリクラス)を作成するには?
初期化パラメータに応じて具体的なインスタンスを作成する抽象クラスを作成したいと思います。例:
次に、FooSomething < SomethingGeneric、BarSomething < SomethingGeneric などが必要です。それから私がするとき:
FooSomething インスタンスを取得します。
ここでの問題は、「新しい」方法です。私はSomethingGeneric.newを定義しましたが、FooSomethingとBarSomethingはSomethingGenericのサブクラスであるため、ここでは間違った引数で呼び出される「新しい」メソッドを継承しています:
解決策の 1 つは、ファクトリ メソッド「new」に別の名前を使用することです。ただし、利便性にこだわり、「new」という名前の抽象スーパークラス ファクトリ メソッドを維持したいと考えています。
この問題を解決する最もクリーンで正しい方法は何ですか?
objective-c - Objective C - NSArray のサブクラス化
をサブクラス化NSArray
しようとしていますが、count メソッドにアクセスしようとするとアプリがクラッシュします。私はそれNSArray
が クラス clusterであることを知っています。
- しかし、これはどういう意味ですか?
- NSArray をサブクラス化できるようにするための回避策はありますか?
単純にサブクラスNSObject
化して配列をインスタンス変数として持つことができることはわかっていますが、むしろサブクラス化したいと思いますNSArray
。
編集:
理由: 私はカード ゲームを作成しています。いくつかの追加のメソッド ( 、、など)を持つようにDeck
サブクラス化する必要があるクラスがあります。NSMutableArray
-shuffle
-removeObjects:
-renew
NSArray
cocoa-touch - NSCFNumber による NSNumber カテゴリのエラー
OS X プロジェクトに WSDL2OBJC を使用しています。WSDL2OBJC によって生成されたコードの一部は、カテゴリを NSNumber に追加します。コードを使用しているときに、NSNumber で新しいメソッドを呼び出そうとすると、エラーが発生します。
NSNumber はクラス クラスターであり、プライベート クラスがあり、NSCFNumber は int のクラスであることを読みました。どうすればこれを機能させることができますか? NSCFNumber はプライベート クラスであるため、カテゴリを追加できません。この同じコードは、私が持っている iPhone プロジェクトでも機能します。
objective-c - Objective-C クラス クラスタとプライベート クラス初期化子
通常、私は Cocoa の良い市民として、id
後で簡単にサブクラス化できるように、型を返す初期化子 (つまり、ジェネリック オブジェクトへのポインター) を作成します (ただし、99% の場合は必要ありません)。
今、私は独自のクラス クラスター (単一のパブリック クラスで制限された多数のプライベート クラス) を作成しています。id
質問: ジェネリックポインターを返すようにプライベート クラスのイニシャライザーを定義する必要がありますか?
または、次のようなプライベート クラス自体へのポインター:
objective-c - 型付きプロパティを追加したい場合、NSNotification のサブクラス化は正しいルートですか?
サブクラス化しようとしていNSNotification
ます。
Apple のドキュメントにはNSNotification
、次のように記載されています。
NSNotification
インスタンス変数のないクラス クラスタです。そのため、プリミティブ メソッド、、および をサブクラス化NSNotification
し、オーバーライド する必要があります。任意の指定イニシャライザを選択できますが、イニシャライザが (経由で)の の実装を呼び出さないことを確認してください。 直接インスタンス化することを意図しておらず、その メソッドは例外を発生させます。name
object
userInfo
NSNotification
init
[super init]
NSNotification
init
しかし、これは私には明らかではありません。このような初期化子を作成する必要がありますか?
iphone - これら2つのNSStringメソッドの違い
だから私は今日のインタビューでこれを尋ねられました、そしていくつかのグーグルの後でも答えを理解することができません(実際、私は[NSString文字列]メソッドを使用するコードをまったく見つけることができませんでした)。
違いは何ですか
NSString *someString = [NSString string];
NSString *someString = [[NSString alloc] init];
私の最初の考えは、[NSString string]
自動解放されるオブジェクトを返すのに対し、allocとinitを使用すると保持されているオブジェクトを返すというものでした。しかし、この答えは間違っていたようです。
私はアップルドキュメントでNSStringクラスリファレンスを見てきましたが、それが言っているのは
誰かが私にこれら2つの違いが何であるかを正確に説明できますか?