Question

Je veux avoir un tableau mutable avec primitives dans obj-c (sélecteurs). Quelle est la méthode recommandée pour le faire? NSArray et ceux qui ne peuvent tenir des objets.

Était-ce utile?

La solution

Vous devez utiliser un NSValue pour envelopper le sélecteur ou tout autre type primitif dont vous avez besoin. Cocoa SEL est une sorte de pointeur, vous pouvez donc utiliser [NSValue valueWithPointer:whatever] pour construire et [value pointerValue] pour le sortir. Ou, en général, vous pouvez utiliser [NSValue valueWithBytes:&whatever objCType:@encode(SEL)]; cela fonctionne pour tout type.

Autres conseils

Si vous souhaitez enregistrer un tableau d'objets de SEL, la chose la plus facile serait de convertir les SELs à NSStrings en utilisant la fonction NSStringFromSelector(), les stocker dans un NSMutableArray, puis les reconvertir en SELs lorsque vous les tirez à l'aide NSSelectorFromString() fonction.

Autre que la gestion d'un tableau vous-style C (ce qui est certainement pas la meilleure option, l'OMI), votre seule option est d'utiliser NSArray / NSMutableArray et stocker les numéros à l'aide NSNumber. Il est un peu plus ennuyeux pour obtenir la valeur que sur le type numérique réelle, mais il ne vous libérer de la gestion de vous-même la mémoire du tableau.

Puisque les types primitifs sont en général que des chiffres (qu'ils soient entier ou à virgule flottante) ou des pointeurs, quel est le problème avec l'aide des classes utilisées pour envelopper les pour vos besoins? Un NSMutableArray de NSNumbers, par exemple?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top