2016-09-09 60 views
1

考慮下面的代碼:Objective-C等效於Smalltalk的: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