Ho circa 50 oggetti CGPoint che descrivono qualcosa come un "percorso" e voglio aggiungerli a un NSArray. Sarà un metodo che restituirà il CGPoint corrispondente per un dato indice. Non voglio creare 50 variabili come p1 = ...; p2 = ..., e così via. C'è un modo semplice che mi permetterebbe di definire quei punti "istantaneamente" quando si inizializza l'NSArray con gli oggetti?Come posso aggiungere oggetti CGPoint a un NSArray nel modo più semplice?
128
A
risposta
317
Con UIKit
Apple ha aggiunto il supporto per CGPoint a NSValue
, in modo da poter fare:
NSArray *points = [NSArray arrayWithObjects:
[NSValue valueWithCGPoint:CGPointMake(5.5, 6.6)],
[NSValue valueWithCGPoint:CGPointMake(7.7, 8.8)],
nil];
lista come molti [NSValue] casi come avete CGPoint, e alla fine la lista di zero. Tutti gli oggetti in questa struttura sono auto-rilasciati.
D'altra parte, quando si sta tirando fuori i valori della matrice:
NSValue *val = [points objectAtIndex:0];
CGPoint p = [val CGPointValue];
2
Avete dato un'occhiata a CFMutableArray
? Potrebbe funzionare meglio per te.
7
Io uso questo:
Creare array:
NSArray *myArray = @[[NSValue valueWithCGPoint:CGPointMake(30.0, 150.0)],[NSValue valueWithCGPoint:CGPointMake(41.67, 145.19)]];
Get 1 ° oggetto CGPoint:
CGPoint myPoint = [myArray[0] CGPointValue];
2
Si può anche scrivere questo in uno standard C/C++ modo:
CGPoint oldschool[] = { CGPointMake(5.5, 6.6),
CGPointMake(7.7, 8.8) };
CGPoint p2 = oldschool[1];
Problemi correlati
- 1. Come aggiungere oggetti a un NSArray usando per ciclo?
- 2. Come posso aggiungere più UIBarButtonItem a UINavigationBar?
- 3. C'è un modo semplice per iterare su un NSArray all'indietro?
- 4. Come posso aggiungere dati in modo flessibile agli oggetti Moose?
- 5. C'è un modo semplice per aggiungere un evento a tutti gli oggetti modulo in C#
- 6. Come aggiungere nodi in un TreeView nel modo più veloce?
- 7. Qual è il modo più semplice per mantenere oggetti java?
- 8. NSArray separato a un elenco di tipo NSString oggetti
- 9. Come posso eseguire il backup di un database GridFS MongoDB nel modo più semplice?
- 10. Come posso aggiungere più attributi a un Enum?
- 11. Il modo migliore per ordinare un NSArray di oggetti NSDictionary?
- 12. Come disegnare una linea nel modo più semplice in swift
- 13. Finding oggetto più vicino al CGPoint
- 14. Semplice: oggetto NSArray da raddoppiare?
- 15. Come compilare javadoc dalle fonti nel modo più semplice?
- 16. Il modo più semplice per ordinare l'elenco degli oggetti
- 17. il modo più semplice per aggiungere un tipo a una mappa in clojure
- 18. Qual è il modo più semplice per aggiungere virgole a un intero?
- 19. Come posso verificare se un CGPoint è stato inizializzato?
- 20. Modo più semplice per aggiungere il cookie/variabile XDEBUG_SESSION_START?
- 21. Filtro un NSArray che contiene oggetti personalizzati
- 22. Ordina NSArray con oggetti personalizzati
- 23. Come posso aggiungere un badge a un UIButton standard?
- 24. CGPoint a NSValue e invertire
- 25. NSArray of NSDictionary - Sintassi di inizializzazione semplice
- 26. Come utilizzare NSArray dell'oggetto NSArray nell'obiettivo c?
- 27. Come posso aggiungere un valore booleano a un NSDictionary?
- 28. Un modo semplice per ottenere più oggetti correlati in Parse.com con Javascript?
- 29. Come posso recuperare più oggetti con JPA?
- 30. Qual è il modo più semplice per aggiungere la compressione a WCF in Silverlight?
Freddo. Come funzionerebbe per qualsiasi tipo di scalare? – Thanks
Per i tipi scalari, uno sguardo alla NSNumber ... vedrai costruttori come numberWithBool: numberWithInteger: numberWithFloat :, numberWithUnsignedShort :, ecc –
In alternativa è possibile utilizzare direttamente NSValue: [NSValue valueWithBytes: & someStructSockaddr objCType: @encode (struct sockaddr)] per esempio. –