Эквивалент Objective-C для Smalltalk в at: aKey ifAbsentPut: aBlock?
Рассмотрим следующий код:
rankedGames at: rank ifAbsentPut: [SortedCollection sortBlock: [:one :two | one name < two name]].
Я только видел, что этот "удобный" метод использовался пару раз в коде Smalltalk, и там есть такая SortedCollection без прямого эквивалента Obj-C. Что такое эквивалент Objective-C?
1 ответ
Что такое эквивалент Objective-C?
Прямого эквивалента нет. NSMutableArray
дает вам упорядоченную коллекцию, которая может быть отсортирована, так что это, вероятно, ближе всего к SortedCollection
, Я не знаю однострочного эквивалента at:ifAbsentPut:
так что вы обычно делаете это в несколько строк:
// assume rankedGames is an array of mutable arrays
NSMutableArray *games = rankedGames[rank];
if (games == nil) {
games = [NSMutableArray array];
}