2016-09-09 4 views
1

Рассмотрим следующий код:Объективный эквивалент C для Smalltalk's: aKey ifAbsentPut: aBlock?

rankedGames at: rank ifAbsentPut: [SortedCollection sortBlock: [:one :two | one name < two name]]. 

Я только видел этот метод «удобство» используется несколько раз в Smalltalk код, а затем есть что SortedCollection там без прямого эквивалента Obj-C. Что такое эквивалент Objective-C?

ответ

0

Что такое эквивалент Objective-C?

Не существует прямого эквивалента. NSMutableArray дает вам заказывает: коллекция, которую можно сортировать, так что, возможно, ближайший к SortedCollection. Я не знаю однострочного эквивалент at:ifAbsentPut:, так что вы обычно делаете, что в нескольких строках:

// assume rankedGames is an array of mutable arrays 
NSMutableArray *games = rankedGames[rank]; 
if (games == nil) { 
    games = [NSMutableArray array]; 
} 
+0

Так что я был на правильном пути, но решение является гораздо более сложным, чем Smalltalk. Я буду экспериментировать. – unmircea

 Смежные вопросы

  • Нет связанных вопросов^_^