問題タブ [cocoa-design-patterns]
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.
iphone - コア データを使用したセグメント化されたコントローラー (複数の選択肢)
1 つのメイン エンティティを中心に構築された Core Data ベースのアプリケーションがあります。それに接続されている他のいくつかのエンティティがあり、そのうちの1つは「メモ」と呼ばれるエンティティです。
この Notes エンティティには、日付 (NSDate)、説明 (NSString)、およびその他の 1 つの属性があります。この属性には 4 つの可能なオプションがあり、各エンティティには少なくとも 1 つ、場合によっては 4 つすべてがあります。
メモが作成されているときに、4 つの可能なオプションを持つセグメント化されたコントローラーが存在する可能性があると考えていました。(ここで複数のボタンを選択することさえ可能ですか?)
さらに、このオプションでこれらすべてのメモを並べ替えられるようにしたいと考えています。つまり、たとえば、オプション 3 が選択されたメモのみを返すフェッチ リクエストを作成します。(オプション 2 を選択した場合でも、4 つのオプションすべてを選択した場合でも。)
これを実装する最良の方法について何か提案はありますか?
ありがとう。
iphone - iPhone での XML 解析のパターン
Objective-C のクラスによってすべて定義されている特定の「モデル」を返す Web サービスがあります。RESTful メソッドを呼び出すと、単一のモデル XML またはモデル XML 要素のリストが返されます。
また
オブジェクトまたはオブジェクトのリストの解析が簡単で、最終的にモデル オブジェクトを簡単に追加できるように、クラスを編成する方法を考え出そうとしています。明らかに、「モデル」ごとにデリゲートが必要ですが、簡単かつエレガントになるように整理するにはどうすればよいでしょうか。各モデル オブジェクトの xml デリゲート? リストを処理する方法は?おそらく、リストに従って正しい個々のモデルデリゲートを参照するリストデリゲートオブジェクトのタイプでしょうか? (つまり: ウィジェット -> ウィジェット デリゲート)
Web サービスのすべてのメソッドを提供する単一のクラスを作成します。
他の何よりもオブジェクト指向のデザインパターンの問題だと思います。
iphone - Objective Cの用語:アウトレットとデリゲート
iPhoneがイベントを処理する方法のアウトレットの概念を理解するのに問題があります。ヘルプ!代表団も私を混乱させます。誰かが説明してくれませんか?
iphone - UITabBarController を使用するときに ManagedObjectContext を共有する方法
UITabBarController を保持する MainWindow.xib を持つ iPhone アプリケーションがあります。これは、ViewControllers 配列に UINavigationController とカスタム UIViewController サブクラスを持ちます。UINavigationController のルート ビュー コントローラーとカスタム ビュー コントローラーは、どちらも他の xib ファイルから読み込まれます。
アプリはコア データを使用し、スタックはアプリ デリゲートで初期化されます (規約に従って)。
アプリ デリゲートは、UITabBarController をウィンドウに追加します。
アプリのデリゲートで作成された ManagedObjectContext へのポインターを伝達する必要があることは認識していますが、続行する方法がわかりません (こことここのトピックに関するすべての優れた解説を読んでも):
- ManagedObjectContext を UITabBarController に伝播し、そこから個々のビュー コントローラに伝播しますか? もしそうなら、どのように?
- または、ManagedObjectContext を UINavigationController のルート ビュー コントローラーとカスタム ビュー コントローラーに直接伝達する必要がありますか?
UITabBarController の操作方法を十分に理解していないと思います。
iphone - オブジェクトがすでに割り当てられているので、複数回割り当てられていないかどうかを確認するにはどうすればよいですか?
親切にしてください..私はこのようなものの初心者です。何度も呼び出すメソッドを介してオブジェクトを割り当てて使用したいのですが、オブジェクトをグローバル変数にしてinitWithFrameメソッドに割り当てるのではなく、1つのメソッドだけに割り当てて、ローカル変数にします。次に割り当てて使用します。
iphone - 2つのNSMutableArrayを持つUIPickerView?
私が取り組んでいるコア データ ベースのアプリがあります。これは、EditingViewController を使用して、後でアプリ内に格納されるオブジェクトの属性を記述するユーザーからの入力を取得するさまざまな UI 要素を制御します。EditingViewController.xib ファイルには、datePicker、textField、numberSlider などの要素があり、私の問題は UIPickerView から来ており、.hidden = YES/NO;
式を使用して 1 つのビュー内ですべて制御されます。私の問題は、2 つの異なる NSMutableArray ソースを持つ必要がある 2 つの別々の画面に UIPickerView を設定する必要があることです。viewDidLoad メソッド内で、最初の NSMutableArray をセットアップします。
その後、UIPickerView *picker に次のコードを入力します。
そして、それは最初の属性と配列に対してうまく機能します。その後、別の uitableviewcell が選択されると、ピッカーが非表示picker.hidden = YES;
になり、別のピッカー picker2 が別の情報の配列と共に表示される必要があります。しかし、プロセスを複製しようとすると、まったく新しいピッカーを設定し、それを picker2 と呼び、最初のピッカーのすぐ隣に作成した別の NSMutableArray を入力しようとします (これもすべて、私の EditingViewController ではすべての一部であるためです)。同じビューの、ビューに応じて異なる UI 要素を呼び出すだけです) picker2 に新しい配列を入力できません。2 つの異なるアレイを設定できるように設定する方法がわかりません。2 つのピッカー ビューが必要ですか? 1本だけで出来ますか?の適切な構文は何ですか- (NSString *)pickerView:(UIPickerView *)picker titleForRow:(NSInteger)row forComponent: (NSInteger)component;
2 つの配列を別々に表示できるようにする方法は? 誰かがこれについて私を助けてくれることを願っています、事前に感謝します!
iphone - Xcode iphone アプリで複数のページを作成する方法
私はiPhone SDKの経験を始めています。質問があります。アプリに 2 つのページを作成しようとしていますが、それらをリンクする方法やデザインする方法がわかりません。たとえば、Xcode を起動すると、View という名前のページが 1 つ見つかり、そこにデザインが表示されます。そのページをウェルカム ページにし、ユーザーがそのページに表示される 3 つの選択肢から 1 つを選択するようにします。それらの 1 つをクリックすると、プログラムは次のページまたは選択したページに移動します。
ありがとうございました
cocoa - OSX: アプリケーション ウィンドウ + 境界を取得する
別のアプリケーションとその境界からウィンドウのリストを取得する方法はありますか? たとえば、F-Script や obj-c など (AppleScript を除く) の方法を使用して、別の (他の) Cocoa ベースのアプリケーションのウィンドウの内容にアクセスし、場合によってはそれを変更しますか?
私が話しているのは、1) データへのアクセス ( http://the.layersapp.com/のように) と 2) データの変更についてです。
...外部的に
iphone - UIButton-リリースする必要がありますか?
ビューにボタンを動的に追加したい。これがコードです。
ここでは、「alloc」機能は使用していません。
この声明に対する質問は次のとおりです。
- 同じ状況でimageviewを使用している場合は、現在のビューに一時的なimageviewを追加して、それを解放する必要があります。ボタンをどうする?
- ボタンはどのように割り当ておよび割り当て解除されますか?
- ボタンが割り当てられている場合?メモリはどのように管理されていますか?
- [xリリース]を使用すると、-それは正しいですか、それとも間違っていますか?
iphone - Objective-C で同じデリゲートに対して複数のコールバックが必要になった場合、どのように対処すればよいですか?
NSDictionary に配置される JSON データをダウンロードできるライブラリを作成しました。このクラスを単純な Twitter エンジンでラップします。これにより、友人のタイムラインを取得し、更新を投稿し、GPS 位置情報を使用して更新を投稿できます。Objective-C に関する私の限られた経験から、すべてを接続する方法は委任を使用することです。非同期の結果をセレクターまたはメソッド シグネチャーにコールバックするデリゲート プロパティを設定しました。デリゲートでオプションまたは必須のインターフェイスを作成することもできます。これにより、Xcode がデリゲートの実装を少し支援できるようになります。Objective-C でデリゲートを使用する方法を学ぶために、この単純なプロジェクトを作成しました。
http://www.smallsharptools.com/downloads/ObjC/Delegates.zip
デリゲートでクラスを初期化できる Worker クラスを定義します。doWork メソッドで作業が完了すると、デリゲートのメソッド シグネチャが検索され、メッセージが返されます。次のコードを使用します。
メッセージを返す workFinished: メソッドを探します。このメソッド シグネチャは、ヘッダーの Worker.h に次のコードを含むオプション インターフェイスとして宣言しました。
すべての詳細については、ダウンロードからプロジェクトの残りの部分を確認できます。しかし、これら 2 つのコード スニペットは、この委任パターンがどのように機能するかを示しています。しかし、Twitter クラスでは、デリゲート メソッドへのコールバックにつながる非同期アクションを開始したメソッドのコンテキストを知る必要があります。呼び出し元のクラスから sendUpdate メソッドを複数回呼び出した場合、コールバックのコンテキストを知るにはどうすればよいですか?
通常、JavaScript、Java、C# などの言語では、開始コンテキストにアクセスできるインライン クロージャーまたは匿名クラスを作成しますが、現時点では iPhone の Objective-C ではそうではない可能性があります。この質問は、StackOverflow で既に尋ねられ、回答されていることがわかりました。
したがって、私が行ったことは、オプションのインターフェイスをスキップし、代わりに、非同期アクションが完了したときに Twitter クラスが呼び出すセレクターを渡したことです。このアクションを開始する呼び出しは次のようになります...
このコードは、最初に self をデリゲートとしてエンジン参照を初期化します。セレクターで送信するコールバックをアタッチするために、sendUpdate メソッド シグネチャで元々持っていましたが、メソッド呼び出しがかなり長くなりました。単純にセレクターのプロパティを設定することにしました。これはすべて機能しますが、問題が部分的にしか解決されないため、これがどのように機能するかはわかりません。
この例を完成させるために、非同期作業を終了し、最終的に、指定されたセレクターを探して定義されている場合はそれを呼び出すメソッドを内部的に呼び出します。
ステータス メッセージを渡して Twitter の更新として送信することはできますが、発信元の呼び出しのコンテキストはまだわかりません。sendUpdate を複数回呼び出したいのに、最初の非同期呼び出しがまだ実行中の場合はどうすればよいですか? そして、2 番目の通話が最初に終了した場合はどうなるでしょうか。どちらもデリゲートとして自己を持つため、コンテキストを何らかの方法で追跡するか、別のセレクターに渡してそれらを区別する必要がありますが、これも私のニーズを満たしていません。非同期呼び出しが 3 つ、4 つ、または 5 つある場合はどうなりますか? どのメッセージが正常に送信され、いつ完了したかを知る必要があります。
これをすべて行う唯一の方法は、コンテキストに必要なすべてのプロパティを保持するクラスを作成し、そのクラスを非同期 Twitter メソッドへの呼び出しのデリゲートとして機能させ、親に報告することです。 UIViewController である可能性が高いクラス。私はこのアプローチを取りますが、このアプローチについて読んだり、これを行うサンプルコードを見たりしていません。
あなたならどうしますか?発信とは異なる順序で終了する可能性のある複数の非同期呼び出しをどのように処理し、完了時にコンテキストで処理しますか?