Domanda

Se potessi aggiungere qualcosa a Cocoa, quale sarebbe? Ci sono delle funzionalità, maggiori o minori, che potresti dire mancanti in Cocoa. Forse c'è una ruota che hai dovuto inventare più e più volte a causa di un'omissione nei quadri?

È stato utile?

Soluzione

  • Il supporto per le espressioni regolari incorporato (a RegexKit ) sarebbe estremamente utile. NSRegularExpression è disponibile su iOS 4.0+, ma non è ancora disponibile su Mac OS X.

  • Un modo semplice per leggere progressivamente oggetti NSString da un file di testo di grandi dimensioni senza caricare l'intera cosa in memoria. (NSInputStream e NSFileHandle non sono all'altezza.)

  • La possibilità di rendere facoltativamente NSSet / NSMutableSet / NSCountedSet archiviare ed enumerare gli oggetti in ordine ordinato (come un albero binario di ricerca ) sarebbe sicuramente il benvenuto. Lo stesso vale per le matrici di cacao & # 8212; attualmente devo chiamare qualcosa come - [NSArray sortArrayUsingSelector:] o - [NSMutableArray sortUsingSelector:] per ottenere un array ordinato, e per i set devo prima creare l'array .

  • Una coda heap / prioritaria. Un involucro di cacao intorno a CFBinaryHeap (che non è sicuramente facile da usare come Collezioni di cacao) probabilmente funzionerebbe.

  • Un dizionario che può memorizzare più valori per ogni chiave, comunemente noto come multiset . NSCountedSet è praticamente un multiset / bag, e sarebbe bello avere lo stesso per le associazioni di valori-chiave (NSMultiDictionary?) Invece di dover implementare il mio.

  • Un wrapper amichevole per FSEvents . (CFFileDescriptor fa un po 'del lavoro, ma non è facile da cacao.)

  • Un metodo per creare una NSString da una stringa di formato e una matrice di oggetti (non solo varargs). Questa risposta SO mostra un esempio. Farla funzionare con i primitivi sarebbe complicato ... Forse un NSPointerArray?

  • API coerenti e centralizzate che semplificano la formattazione (e l'analisi) dei numeri di telefono per una varietà di impostazioni locali. Al momento devi eseguire il roll-up con un NSNumberFormatter (o NSScanner) e il processo è noioso e soggetto a errori. (Ad esempio, vedi NSNumberFormatter per formattare i numeri di telefono statunitensi e Rimuovi tutti i numeri tranne NSString .)

Naturalmente, sono sicuramente un fan di un'ampia varietà di strutture di dati in generale, sebbene la semplicità di Cocoa sia rinfrescante rispetto ad alcune lingue.

Altri suggerimenti

Un modo per specificare le proprietà di copia / conservazione che vengono automaticamente rilasciate in dealloc. Forse

@property (nonatomic, copy, dealloc) NSString* name;

E ovviamente RegexKit.

Supporto multiutente per i dati principali. Si può sognare :)
Ma almeno Core Data è ora disponibile su iPhone con OS 3.0.

Un modo per contrassegnare come transitori interi dati core entità . Ciò sarebbe particolarmente utile per implementare la condivisione Bonjour.

Ad esempio, supponiamo di avere un modello simile a iTunes, con entità Playlist e Song . Attualmente, per implementare la condivisione Bonjour, creo due sottoclassi aggiuntive NSObject , TransientPlaylist e TransientSong , che implementano tutti gli stessi metodi dei loro dati principali controparti.

Non dovrei aver bisogno di raddoppiare il numero di classi del modello solo per avere versioni transitorie dei miei oggetti - non quando voglio comportarsi esattamente allo stesso modo, senza la persistenza.

(Sì, l'altra opzione è quella di avere un archivio persistente in memoria che ospita tutte le entità che si desidera siano transitorie. Ad ogni modo, è un sovraccarico non necessario)

Un wrapper più amichevole attorno al Keychain Servizi .

  • Buon supporto per le espressioni regolari
  • Gestori layout in AppKit. Il ridimensionamento automatico non lo riduce per le GUI complicate.

@property (.., copy) supporto per classi di tipi mutabili ( NSMutableArray , NSMutableDictionary , ecc.). Attualmente, se si assegna un valore alla proprietà per una classe di tipo mutabile, l'oggetto creato non sarà modificabile (a causa della copia).

Supporto adeguato per i servizi Web.

Venendo a Cocoa dal mondo .NET, ho una richiesta: LINQ!

Negli ultimi mesi ho imparato ad amare poter usare LINQ su qualsiasi collezione che mi si avvicina.

Sicuramente un'interfaccia ragionevole dalla gestione dei contesti degli oggetti ai server di database SQL sarebbe piuttosto interessante.

Mi piacerebbe vedere esempi migliori di scrittura di viste personalizzate con celle create programmaticamente, tutte in automatico.

Inoltre, sembra esserci una vera lacuna nel supporto di IB per finestre multi-vetro complesse con divisori funzionanti. Suppongo che ci stiano lavorando?

E qualunque cosa sia successa all'indipendenza della risoluzione, eh?

Supporto JSON integrato per importazioni / esportazioni.

Sicuramente una controparte per HotKeys in carbonio

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top