Подтвердить что ты не робот

Что отсутствует в Cocoa?

Если бы вы могли добавить что-нибудь в Cocoa, что бы это было? Есть ли какие-либо функции, основные или второстепенные, которые вы бы сказали, отсутствуют в Cocoa. Возможно, есть колесо, которое вам пришлось изобретать снова и снова из-за упущения в рамках?

4b9b3361

Ответ 1

  • Поддержка встроенного регулярного выражения (a la RegexKit) будет чрезвычайно удобна. NSRegularExpression доступен на iOS 4.0+, но он пока недоступен в Mac OS X.

  • Простой способ постепенного чтения объектов NSString из большого текстового файла без загрузки всего объекта в память. (NSInputStream и NSFileHandle просто не подходят для этого.)

  • Возможность необязательно сделать NSSet/NSMutableSet/NSCountedSet хранить и перечислять объекты в отсортированном порядке (например, двоичное дерево поиска) безусловно, будет рад. То же самое касается массивов Cocoa - в настоящее время мне нужно вызвать что-то вроде -[NSArray sortedArrayUsingSelector:] или -[NSMutableArray sortUsingSelector:], чтобы получить отсортированный массив, а для наборов мне нужно сначала создать массив.

  • Очередь кучи/приоритета. Обертка Cocoa вокруг CFBinaryHeap (что определенно не так просто использовать как коллекции Cocoa), вероятно, будет работать.

  • Словарь, который может хранить несколько значений для каждого ключа, обычно называемого мультимножеством. NSCountedSet - это в значительной степени мультисеть/сумка, и было бы неплохо иметь то же самое для ассоциаций с ключом (NSMultiDictionary?) Вместо того, чтобы сворачивать мои собственные.

  • Дружественная оболочка для FSEvents. (CFFileDescriptor выполняет некоторую работу, но не Cocoa -просто.)

  • Способ создания NSString из строки формата и массива объектов (а не только varargs). Этот ответ SO показывает пример. Получение его для работы с примитивами было бы сложным... Может быть, NSPointerArray?

  • Согласованные, централизованные API, которые упрощают форматирование (и разбор) телефонных номеров для различных локалей. В настоящее время вы должны сворачивать свой собственный с помощью NSNumberFormatter (или NSScanner), и этот процесс является утомительным и подверженным ошибкам. (Например, см. NSNumberFormatter для форматирования номеров телефонов США и Удалить все, кроме номеров из NSString.)

Конечно, я определенно поклонник широкого спектра структур данных, хотя Cocoa простота освежает по сравнению с некоторыми языками.

Ответ 2

Способ задания свойств копирования/сохранения, которые автоматически освобождаются в dealloc. Возможно,

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

И RegexKit, конечно.

Ответ 3

Многопользовательская поддержка основных данных. Можно мечтать:)
Но по крайней мере Core Data теперь доступен на iPhone с ОС 3.0.

Ответ 4

Способ флага всех объектов Core Data как переходный. Это было бы особенно полезно для совместного использования Bonjour.

Например, скажем, у меня есть iTunes-подобная модель с объектами Playlist и Song. В настоящее время для реализации совместного использования Bonjour я создаю два дополнительных подкласса NSObject, TransientPlaylist и TransientSong, которые реализуют все те же методы, что и их сопоставления с основными данными.

Мне не нужно удваивать число классов модели только для того, чтобы иметь временные версии моих объектов, а не когда я хочу, чтобы они вел себя точно так же, sans persistence.

(Да, другой вариант - иметь постоянное хранилище в памяти, в котором размещаются все объекты, которые вы хотите быть временными. В любом случае это лишние накладные расходы)

Ответ 6

  • Хорошая поддержка регулярных выражений
  • Менеджеры макетов в AppKit. Авторезизация просто не сокращает ее для сложных графических интерфейсов.

Ответ 7

@property (..,copy) поддержка изменяемых типов классов (NSMutableArray, NSMutableDictionary и т.д.). В настоящее время, если вы присваиваете значение свойству для класса изменяемого типа, созданный объект будет не изменяемым (из-за копии).

Ответ 8

Надлежащая поддержка веб-сервисов.

Ответ 9

Входя в Cocoa из мира .NET, у меня есть один запрос: LINQ!

За последние несколько месяцев я полюбил возможность использовать LINQ в любой коллекции, которая приближается ко мне.

Ответ 10

Разумеется, разумный интерфейс от управления объектными контекстами к серверам баз данных SQL будет довольно крутым.

Мне бы хотелось увидеть лучшие примеры написания пользовательских представлений с программно создаваемыми ящиками, и все они автоматически прокручиваются.

Кроме того, существует реальный пробел в поддержке IB для сложных многослойных окон с рабочими разделителями. Я полагаю, они работают над этим?

И что бы ни случилось с разрешением независимости, да?

Ответ 11

Встроенная поддержка JSON для импорта/экспорта.