J'ai environ 50 objets CGPoint qui décrivent quelque chose comme un "chemin", et je veux les ajouter à un NSArray. Ce sera une méthode qui retournera juste le CGPoint correspondant pour un index donné. Je ne veux pas créer 50 variables comme p1 = ...; p2 = ..., et ainsi de suite. Existe-t-il un moyen simple de me permettre de définir ces points "instantanément" lors de l'initialisation du NSArray avec des objets?Comment ajouter facilement des objets CGPoint à un NSArray?
128
A
Répondre
317
Avec UIKit
Apple a ajouté le soutien pour CGPoint à NSValue
, de sorte que vous pouvez faire:
NSArray *points = [NSArray arrayWithObjects:
[NSValue valueWithCGPoint:CGPointMake(5.5, 6.6)],
[NSValue valueWithCGPoint:CGPointMake(7.7, 8.8)],
nil];
Liste autant de [NSValue] les instances que vous avez CGPoint, et mettre fin à la liste nulle. Tous les objets de cette structure sont automatiquement libérés.
D'un autre côté, quand vous tirez les valeurs hors du tableau:
NSValue *val = [points objectAtIndex:0];
CGPoint p = [val CGPointValue];
2
Avez-vous pris un coup d'oeil à CFMutableArray
? Cela pourrait mieux fonctionner pour vous.
7
J'utilise ceci:
Créer tableau:
NSArray *myArray = @[[NSValue valueWithCGPoint:CGPointMake(30.0, 150.0)],[NSValue valueWithCGPoint:CGPointMake(41.67, 145.19)]];
Obtenir 1er objet CGPoint:
CGPoint myPoint = [myArray[0] CGPointValue];
2
Vous pouvez également écrire cette manière standard C/C++:
CGPoint oldschool[] = { CGPointMake(5.5, 6.6),
CGPointMake(7.7, 8.8) };
CGPoint p2 = oldschool[1];
Questions connexes
- 1. NSArray ajouter des éléments
- 2. NSArray avec des objets personnalisés dans NSTableDataSource
- 3. Est-ce que NSArray copie des objets?
- 4. Puis-je ajouter facilement JavaDoc à un package avec Eclipse?
- 5. NSLog avec des données CGPoint
- 6. Comment ajouter des objets aux services wcf
- 7. Comment ajouter des enfants à un LegendItem?
- 8. NSArray avec des types C?
- 9. Comment ajouter un CGImageRef à un NSDictionary?
- 10. Animer un UIView sur un CGPoint
- 11. NSArray avec des valeurs
- 12. comment ajouter des types opaques aux collections
- 13. Insensible à la casse indexOfObject pour NSArray
- 14. Comment facilement indenter la sortie à ofstream?
- 15. Comment trier un NSArray par ordre alphabétique?
- 16. Comment ajouter des données à TableView sur iphone?
- 17. Cocos 2d & CGPoint confusion en mode paysage
- 18. Comment tronquer facilement un tableau avec JavaScript?
- 19. Comment ajouter facilement les modules Perl non installés dans mon répertoire de développement à @INC?
- 20. Quelle est la convention standard pour créer un nouveau NSArray à partir d'un NSArray existant?
- 21. Comment facilement convertir un objet DbDataReader en quelque chose d'utile?
- 22. Comment peut-on facilement ajouter du support posix à PHP en utilisant yum?
- 23. Comment ajouter facilement beaucoup de pages html «stupides» à l'application ASP.NET-MVC
- 24. Mockup Editor - Outil gratuit pour ajouter facilement des flèches, des légendes, etc
- 25. Comment ajouter des composants à un JPanel à l'exécution
- 26. Comment puis-je ajouter des objets de base de données SQL Server à TFS?
- 27. iPhone NSArray de Dictionnaire des valeurs Dictionnaire
- 28. Quel type de données est dans une constante de type "enum"? Comment l'ajouter à un NSArray?
- 29. Filtre NSArray iphone
- 30. Comment ajouter des éléments à un tableau dans jQuery?
Cool. Comment cela fonctionnerait-il pour n'importe quel type de type scalaire? – Thanks
Pour les types scalaires, jetez un oeil à NSNumber ... vous verrez des constructeurs comme numberWithBool: numberWithInteger: numberWithFloat :, numberWithUnsignedShort :, etc. –
Vous pouvez également utiliser NSValue directement: [NSValue valueWithBytes: & someStructSockaddr objCType: @encode (struct sockaddr)] par exemple. –