問題タブ [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.

0 投票する
2 に答える
7184 参照

objective-c - performSelector メソッドは何をしますか?

何をしperformSelectorますか?NSThread新規作成とperformSelectorメソッドの違いは何ですか?

どのように機能し、どこで使用する必要がありますか?

0 投票する
2 に答える
2605 参照

iphone - 10 MB の JSON 応答を NSDictionary に変換する最も効率的な方法は何ですか?

私たちのアプリは、最小限のリモート http リクエストで大量のデータを表示する必要があるため、必要なすべてのデータを単一の json レスポンスとして提供するエンドポイントをバックエンドに追加しました。これにより、約 1.5 MB (圧縮) または約 8 MB の圧縮されていない json 形式のテキストが生成されます。

大きな問題はありません。ダウンロードは 10 ~ 30 秒で完了し、ASIHTTPRequest を使用して応答全体をディスクに書き込みます。

ここからが楽しい部分です。圧縮されていないファイルをメモリ マップされた文字列に読み取った後、stig のjson-frameworkを使用してそれを NSDictionary に変換します。これは、アプリの残りの部分と、残りの API エンドポイントの典型的な 2 KB json 応答で非常にうまく機能しています。ただし、これらの 8 MB のデータのデシリアライズには、数秒 (シミュレーター) から数分 (3G および第 2 世代 iPod Touch) かかります。

私は、このすべてのデータを読み取るための最良のアプローチを研究しています。

バックエンドから直接提供されるバイナリ plist を使用したいのですが、Java を使用しており、要件に合った適切なライブラリが見つかりませんでした。締め切りが非常に厳しいため、独自のライブラリを作成することは最善のアイデアではない可能性があります。

なんらかの方法で役立つ場合、解析している json 文字列は、ほとんどの場合、次のような X 項目の配列です。

この 8 MB の json 形式の文字列をメモリ内の NSDictionary に読み込む最も効率的な方法は何ですか?

0 投票する
2 に答える
649 参照

ios - デリゲート宣言のジレンマ

混乱しています - デリゲートの目的が理解できません。

デフォルトで作成される Application Delegate は理解できますが、場合によっては次のようなものを見てきました。

は何の<UIScrollViewDelegate>ためですか?

それはどのように機能し、なぜ使用されるのですか?

0 投票する
3 に答える
2086 参照

objective-c - Objective-C クラスを美しく見せる

Objective C、特に Cocoa Touch のコードのにおいについて、皆さんの意見をお聞きしたいと思います。私はかなり複雑なゲームに取り組んでおり、Great December Refactoring を開始しようとしています。

私のクラスのかなりの数、特にモデルは、内部のビジネス ロジックを処理するメソッドでいっぱいです。大規模なヘッダー ファイルとの戦いで、これらをプライベート カテゴリに非表示にします。これらのプライベート カテゴリには多数の宣言が含まれており、これは私を不安にさせます...まるで、Objective-C がこれらすべてのメソッドについて罪悪感を感じさせようとしているかのようです。

リファクタリングをすればするほど (良いことです!)、この重複をすべて維持する必要があります (あまり良くありません)。気分が悪いだけです。

Ruby のような言語では、コミュニティは非常に短く、明確で、美しいメソッドに重点を置いています。私の質問は、Objective C (具体的には Cocoa Touch) の場合、メソッドの長さ、コントローラーの大きさ、およびクラスごとのメソッドの数がプロジェクトで一般的になっていることがわかりますか? Objective C の短いメソッドで構成されたクラスの特に素晴らしい、美しい例はありますか? それとも、それは単に言語の文化の重要な部分ではないのでしょうか?

開示: 私は現在、私の悲しみを説明するはずの "The Little Schemer" を読んでいます。re: Objective C.

0 投票する
1 に答える
1182 参照

java - JavaコマンドパターンとiPhoneデリゲートパターン

こんにちは私はJava開発者であり、最近はiPhone開発にも取り組み始めています。Javaのコマンドパターンは、iphoneのデリゲートパターンにいくらか似ているか、またはその逆であるのではないかと思っていました。どちらの場合も、他の誰かが担当者のために作業を行っているからです。誰かがこれについて私に教えてもらえますか?

0 投票する
1 に答える
202 参照

cocoa - CocoaのKVCは、インスタンス変数がアクセス可能かどうかをどのようにチェックしますか?

最近、「CocoaDesignPatterns」を読んでいました。KVCについて話すとき、「KVCは-< key >または-get < Key >という名前のアクセサーが最初に存在するかどうかを確認し、存在しない場合は、< key >または_< key >という名前のインスタンス変数を試行します」と述べています。obj-cランタイムはインスタンス変数が存在するかどうかをチェックできますか?コンパイル時にしかできないと思います...

どんな答えでも大歓迎です^_^

0 投票する
3 に答える
259 参照

objective-c - サードパーティ API を扱うときの正しいシステム設計とは?

Joubert によるこのブログ投稿は、私の目を開かせてくれました。私は Java やその他の言語で多くのデザイン パターンを扱ってきました。しかし、Objective-C はかなりユニークな言語です。

プロジェクトで、Dropbox や Facebook などのサードパーティ API とやり取りするとします。私がこれまで行ってきたことは、サードパーティ API に関係するすべてのものをシングルトン クラスに結合することです。したがって、View Controller のどこからでもクラスにアクセスできます。たとえば、次のようにします。[[DropboxModel sharedInstance] uploadFile:aFile]

ただし、ブログ投稿で指摘されているように、これは効率的ではなく、スパゲッティ コードや不適切な単体テストにつながります。では、モジュール式で使いやすいようにシステムを設計する最善の方法は何でしょうか?

0 投票する
1 に答える
5200 参照

iphone - iPhoneアプリの状態の変化を検出するには?

この質問を (回答と共に) 投稿することで、iOS アプリの状態の変化をモジュールが自動的に検出 (および応答) するように進化させた巧妙な手法を他の人が利用できるようにします。(フォーマットされた)ブログディスカッションはこちらMy Blog

0 投票する
4 に答える
96 参照

cocoa - Cocoa サブクラスでインスタンス変数に名前を付ける好ましい方法はありますか?

MKMapView のようなクラスをサブクラス化する場合、新しく追加されたインスタンス変数に名前を付ける好ましい方法はありますか? Apple は、アンダースコアのプレフィックスを独自の使用のために予約していると言っています。