Cocoaには何が欠けていますか? [閉まっている]
-
06-07-2019 - |
質問
Cocoaに何か追加できるとしたら、それは何でしょうか? Cocoaに欠けていると思われる機能(メジャーまたはマイナー)はありますか?おそらく、フレームワークの省略のために何度も発明しなければならなかったホイールがありますか?
解決
-
組み込みの正規表現のサポート(a RegexKit )は extremely 便利です。 NSRegularExpressionはiOS 4.0以降で利用可能ですが、Mac OS Xではまだ利用できません。
-
全体をメモリにロードせずに、大きなテキストファイルからNSStringオブジェクトを段階的に読み取る簡単な方法。 (NSInputStreamとNSFileHandleは、そのために測定しません。)
-
NSSet / NSMutableSet / NSCountedSetをオプションで保存し、ソートされた順序でオブジェクトを列挙する機能( CFBinaryHeap の周りのCocoaラッパー(これは間違いなく使いにくいCocoaコレクション)はおそらく動作します。
-
各キーに複数の値を保存できる辞書。一般に multiset として知られています。 NSCountedSetはほとんどマルチセット/バッグであり、キーと値のアソシエーション(NSMultiDictionary?)で同じものを使用するのではなく、独自のものをロールバックするのが良いでしょう。
-
FSEvents のわかりやすいラッパー。 (CFFileDescriptorは作業の一部を実行しますが、Cocoaに簡単ではありません。)
-
フォーマット文字列とオブジェクトの配列(可変引数だけでなく)からNSStringを作成するためのメソッド。 このSOの回答に例を示します。プリミティブで動作させるのは難しいでしょう... NSPointerArrayかもしれませんか?
-
さまざまなロケールの電話番号のフォーマット(および解析)を簡素化する一貫した集中型API。現在、NSNumberFormatter(またはNSScanner)を使用して独自にロールする必要があり、プロセスは退屈でエラーが発生しやすくなります。 (たとえば、 NSNumberFormatterを参照して米国の電話番号をフォーマットしますおよび NSStringから数字以外のすべてを削除。
もちろん、私は間違いなくさまざまなデータ構造のファンです一般的ですが、Cocoaのシンプルさは一部の言語と比べてすっきりしています。
他のヒント
deallocで自動的に解放されるコピー/保持プロパティを指定する方法。おそらく
@property (nonatomic, copy, dealloc) NSString* name;
そしてもちろんRegexKit。
コアデータのマルチユーザーサポート。夢を見ることができます:)
しかし、少なくともCore DataはOS 3.0を搭載したiPhoneで利用可能になりました。
コアデータエンティティ全体を一時的なものとしてフラグを立てる方法。これは、Bonjour共有の実装に特に役立ちます。
たとえば、 Playlist
および Song
エンティティを備えたiTunesのようなモデルがあるとします。現在、Bonjour共有を実装するために、2つの追加の NSObject
サブクラス、 TransientPlaylist
および TransientSong
を作成します。これらは、コアデータと同じメソッドをすべて実装しますカウンターパート。
オブジェクトの一時的なバージョンにするためだけに、モデルクラスの数を倍にする必要はありません–まったく同じように動作するように したいときではなく、永続性です。
(はい、他のオプションは、一時的にしたいすべてのエンティティを格納するインメモリ永続ストアを持つことです。いずれにしても、不必要なオーバーヘッドです)
- 優れた正規表現のサポート
- AppKitのレイアウトマネージャー。複雑なGUIの場合、自動サイズ変更ではカットされません。
@property(..、copy)
の可変型クラス( NSMutableArray
、 NSMutableDictionary
など)のサポート。現在、可変型クラスのプロパティに値を割り当てた場合、作成されたオブジェクトは(コピーのために)可変ではありません。
Webサービスの適切なサポート。
.NETの世界からCocoaにアクセスする1つのリクエストがあります:LINQ!
ここ数か月、私は自分の近くにあるコレクションでLINQを使用できるようになりました。
確かに、オブジェクトコンテキストの管理からSQLデータベースサーバーへの合理的なインターフェイスは非常にクールです。
プログラムで作成されたセルを使用してカスタムビューを作成し、すべてが自動スクロールするより良い例をご覧ください。
また、機能するスプリッターを備えた複雑なマルチペインウィンドウに対するIBのサポートには、実際のギャップがあるようです。彼らはこれに取り組んでいると思う?
そして、解像度の独立性に何が起こったのですか?
インポート/エクスポートの組み込みJSONサポート。