2016-09-09 1 views
1

Consultez le code suivant:Équivalent Objective-C pour Smalltalk à: aKey ifAbsentPut: aBlock?

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

Je n'ai vu cette « commodité » utilisé deux fois dans le code Smalltalk, et puis il y a que SortedCollection il sans équivalent directe Obj-C. Quel est l'équivalent d'Objective-C?

Répondre

0

Qu'est-ce que l'équivalent Objective-C?

Il n'y a pas d'équivalent direct. NSMutableArray vous donne un commandé collection qui peut être triée, c'est probablement le plus proche de SortedCollection. Je ne sais pas d'un équivalent unique ligne de at:ifAbsentPut:, de sorte que vous auriez normalement le faire en quelques lignes:

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

J'étais donc sur la bonne voie, mais la solution est beaucoup plus complexe que Smalltalk. Je vais expérimenter. – unmircea