問題タブ [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 投票する
1 に答える
1766 参照

objective-c - カスタム プラグイン (ライブラリ) を Cocoa アプリケーションに動的にロードする

Mac OS X 用の Cocoa アプリケーションを開発しました。いくつかのカスタム プラグイン (インターフェイスも含む) を作成し、アプリに動的にロードしたいと考えています。私のアプリは、フォルダー内を調べてすべてのファイル (プラグイン) を取得し、それらをユーザー インターフェイスで使用できるようにする必要があります。

誰かが私に出発点を提案できますか?

それらを動的にロードするにはどうすればよいですか?プラグインは動的ライブラリまたは sth でなければなりませんか?

ありがとう。

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

cocoa - Cocoa ドキュメントベースのアプリケーション

Cocoa Document ベースのアプリケーションを作成しています。私のアプリケーションは、ユーザーがキャンバスにペイントし、ドキュメントを JPG または PNG として保存できる単純な描画アプリケーションです。ユーザーには、関係のない複数の図面を同時に開いて作業してもらいたいと思います。

私のアプリケーションは常に空の無題のキャンバスから始まり、ユーザーはキャンバスにペイントできます。その後、ユーザーは図面を JPG または PNG として保存できます。

私のアプリケーションには、「新規」、「保存」、および「名前を付けて保存」のみがあり、「開く」はありません。これは、常に空白のキャンバスから開始し、図面を独自の図面形式で保存するという概念がないためです。ユーザーが後で図面を再度開いて編集できるようにします。

ドキュメントベースのアプリケーションを使用するのは良い考えです。Xcode で Cocoa ドキュメント ベースのアプリケーション プロジェクトを作成するときに、ドキュメント タイプの拡張子として何を使用すればよいですか。

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

iphone - Objective cの継承/プロトコルの混乱:UITableViewController

今、私はObjectiveCとXCodeに頭を悩ませようとしています。私は遊んでいてUITableView、背後にある概念を分離するのに問題があります

  • UITableViewController
  • UITableViewDelegate
  • UITableViewDataSource

私はMVCパターンに精通しており、Apple Developer Docsから、フレームワークがデリゲートを使用してサブクラス化せずにクラスを「特殊化」し、データソースクラスがモデルからビューにデータをマッピングする方法を定義していることを学びました(私が間違っている)。

[新しいファイル]を選択してTableViewControllerを作成したとき..>CocoaTouch Class> UIViewControllerサブクラス(UITableViewControllerサブクラスをチェック)テンプレートに、TableViewControllerがこれらを実装することをヘッダーファイルで指定せずに、UITableViewDelegateおよびUITableViewDataSourceのすべての関数が含まれていることに戸惑いました。プロトコル。UITableViewControllerのドキュメントには、「UITableViewDelegateおよびUITableViewDataSourceに準拠している」と記載されています。それはそれがそれらのプロトコルを実装することを意味しますか?

だから私の質問は:UITableViewControllerはUITableViewDelegateとUITableViewDataSourceを組み合わせた単なる便利なクラスですか、それとも何かが足りないのですか?また、UITableViewDelegateとUITableViewDataSourceを別々に提供する場合、UITableViewControllerが必要ですか?

ありがとうございました!

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

objective-c - ユニバーサル アプリでデバイス固有のビュー コントローラーをインスタンス化するための正しいパターンは何ですか?

私はobjective-Cが初めてなので、ご容赦ください。Xcode4 の Universal App テンプレートから始めて、アプリケーションを構築しました。私が固執しようとしたテンプレートがあなたを始めるという慣習があります. ビュー コントローラーごとに、デバイスの種類ごとにメイン ファイルとサブクラスがあります。例えば:

ほとんどの場合、これは非常に便利です。ほとんどのロジックはスーパークラスに入り、サブクラスはデバイス固有の実装を処理します。

ここが私が得られない部分です。デバイスごとに異なる xib をロードする必要があるという理由だけで、各サブクラスで同じことを行うコードがある場合があります。例えば:

ExampleViewController_iPhone

ExampleViewController_iPad

_iPad... 2 番目のインスタンスでは、View Controller のバージョンをロードしていることだけが異なることに注意してください。これは、ビュー コントローラiPadiPhoneビュー コントローラが別々のデバイス固有のペン先に接続されているために必要です。

これを行うための「正しい」パターンは何ですか?


アップデート

デバイス修飾子を使用して個別のxibをロードすることに関するこの回答を見つけました。これは、1つのデバイスに特定のサブクラスが必要ない場合に役立つようですが、特定の_iPhoneまたは_iPadインスタンスをインスタンス化する必要がある場合はそれでも役に立ちませんデバイス固有の機能用のビュー コントローラー。

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

cocoa - Xcode 4 と xib を備えたコントローラー

スプリットビューコントローラーを備えたメインの xib があり、ibactions とプロパティを AppDelegate コードにドラッグしました。

したがって、私のapplicationDidFinishLaunchingでは、リンクしたnsviewの1つにxibを使用するコントローラーをロードしたいと思います。

問題は、xcode を使用して、新しい xib の ibactions とプロパティを、それをロードするコントローラーにリンクできないことです。

それはプログラムで行う必要がありますか?

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

iphone - ダイナミッククリエーションとは?

最近、Cocoa のデザイン パターンの 1 つとして Dynamic Creation について読みました。しかし、私はそれがどのように機能するのかよくわかりません。ですから、あなたのデザインに実装したあなたからの説明が必要です。

  1. それは何ですか?このデザイン パターンを使用する理由とタイミングは?
  2. NSClassFromString()クラスへのアクセスに使用されていることを読みました。自分が取り組んでいるプロジェクト内に存在しないクラスを使いたいときに使うと思います。通常、特定のクラスを使用したい場合は、それらをヘッダーにインポートしました。このアプローチを使用すると、#importプロセスがスキップされますか?

    上記のコードを例として引用します。上記のコードに従って実行すると、新しい JavaArrayList クラスを作成し、そのメソッドを使用できるということですよね?

    /li>
  3. この設計パターンを使用する利点は何ですか? 特にiPhone開発では。

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

iphone - NSArrayから単一属性のNSArrayを取得する

私は非常に定期的なシナリオに直面しています。

私は、Personなどのカスタムタイプのオブジェクトを持つNSArrayを持っています。Personクラスには、firstName、lastName、およびageという属性があります。

Personオブジェクトを持つNSArrayから1つの属性のみを含むNSArrayを取得するにはどうすればよいですか?

何かのようなもの:

forループを記述してfirstNames配列に入力するという解決策がありますが、それはしたくありません。

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

objective-c - Objective-Cで使用する前に一部のオブジェクトを初期化する必要がないのはなぜですか?

Objective-Cで使用する前に一部のオブジェクトを初期化する必要がないのはなぜですか? たとえば、なぜこれはNSDate *today = [NSDate date];合法なのですか?

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

iphone - アプリ内に iPhone アプリを実装する

私は2つのアプリを持っています。小さなアプリをメインアプリケーションに持ち込むことで、それらをマージしたいと思います。小さなアプリが最初にアプリデリゲートからインスタンス化されるのではなく、メインコントローラーの既存のナビゲーションコントローラーを介してプッシュされます。

しかし、元の開発者は、アプリの構造と元のアプリ デリゲート シングルトンにさまざまな依存関係を持っているため、コードを再配置せずにメイン ビュー コントローラーをプッシュすることは簡単ではありません..時間がかかります。

通常、標準的なココア プロジェクトを他の既存のアプリケーションの機能に変換しながら、物事を適切に切り離す機能を維持するにはどうすればよいでしょうか。