NSArray *splitPoints = [routeGeom componentsSeparatedByString:@"], ["];
routePoints = malloc(sizeof(CLLocationCoordinate2D) * ([splitPoints count] + 1));
int i=0;
NSArray *coords;
for (NSString* coordStr in splitPoints) {
coords = [coordStr componentsSeparatedByString:@","];
routePoints[i].latitude = [[[coords objectAtIndex:0] substringFromIndex:1]floatValue];
routePoints[i].longitude = [[coords objectAtIndex:1] floatValue];
i++;
}
[coords release];
NSLog(@"** Time to split the route geometry into structs %f", [NSDate timeIntervalSinceReferenceDate] - start);
1
A
Répondre
6
Tenir compte:
char *buf = [coordStr UTF8String];
sscanf(buf, "%f,%f", &routePoints[i].latitude, routePoints[i].longitude);
2
J'envisagerais d'utiliser la chaîne de caractères renvoyée par [coordStr UTF8String] et d'analyser manuellement les caractères.
2
Cela me semble comme un cas où NSScanner serait une victoire. -componentsSeparatedByString et -substringFromIndex vont tous les deux créer des objets tas, ce que vous ne voulez pas faire dans une boucle serrée.
2
Je pensais juste que je sauterais ici et que je dirais que votre ligne [coords release]
est inutile (et erronée). Vous devez le supprimer pour éviter les problèmes dans les environnements non GC. Vous n'êtes pas obligé de publier coords
car vous ne l'avez pas explicitement créé ou conservé.
Questions connexes
- 1. Comment optimiser cette requête MySQL lente (très lente)?
- 2. Création dynamique de pages statiques ... (Je ne pose pas cette question parce que je veux, plutôt parce que je dois ...)
- 3. Javascript error ... Je pense que
- 4. erreur charset ... je pense que
- 5. C# Pourquoi cette boucle est-elle si lente?
- 6. Requête MySQL lente. Que devrais-je indexer?
- 7. Je pense que c'est une sorte de problème d'encodage
- 8. iphone: questions de délégué (je pense)
- 9. Demande HTTP SOAP très lente
- 10. + requestAdWithDelegate: plante parce que je suis dans GSEventReceiveRunLoopMode?
- 11. (je suis proche - je pense) Python boucle à travers la liste des sous-domaines avec sélénium
- 12. NHibernate Mapping problème (je pense)
- 13. Comment est-ce que je crée un fichier .net assembly taille aussi petit que possible?
- 14. Pourquoi cette variable javascript que je crée via C# n'est mise à jour qu'une seule fois?
- 15. Est-ce que PartialView fait ce que je pense qu'il devrait (mais ne fait pas)?
- 16. Comment est-ce que je crée par programme un site FTP dans IIS7 sur Windows7?
- 17. Pourquoi cette fonction revient-elle à zéro? Est-ce parce que le D.S est paresseux?
- 18. type Flex Coercion, il est parti, je pense mentale
- 19. Est-ce que je réinvente la roue sur cette idée?
- 20. Hibernate est * PAS * lancer une exception (je pense qu'il devrait)
- 21. Git pense que je réécris un de mes fichiers chaque fois que je fais un petit changement
- 22. Que dois-je faire pour cette ligne de code? (C#)
- 23. Puis-je utiliser linq pour réaliser la même chose que cette boucle foreach?
- 24. Un moyen d'améliorer cette requête lente?
- 25. Comment est-ce que je crée un div pour le faire fonctionner avec le texte?
- 26. Est-ce que je devrais stocker en tant que "chaînes" ou "entiers" en php et mysql?
- 27. Expression régulière très lente lors de l'utilisation de documents volumineux
- 28. XmlSerializer n'agit pas comme je le pense
- 29. je pense que mon chemin est correct, mais donne toujours la même erreur « php.exe » non reconnu
- 30. problème de base php Je pense que la réponse impliquera des tableaux
Je me demande combien d'utilisateurs de SO ont juste couru dans ce fil en criant "StringBuilder! StringBuilder" à leur moniteur jusqu'à ce qu'ils voient une question de C. –