Objectivet C等效于Smalltalk的at:aKey ifAbsentPut:aBlock?

时间:2016-09-09 07:55:44

标签: objective-c smalltalk sortedcollection

请考虑以下代码:

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

我只看到过这种“方便”方法在Smalltalk代码中使用了几次,然后就是那里没有直接Obj-C等级的SortedCollection。什么是Objective-C等价物?

1 个答案:

答案 0 :(得分: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];
}