Comment résoudre CALayerInvalidGeometry ', raison:' La position de CALayer contient NaN: [nan nan]?
J'ai une erreur d'où le plantage de l'application lors du démarrage.
C'est l'erreur que j'ai:
*** Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer position contains NaN: [nan nan]'
*** First throw call stack:
(0x250b022 0x2709cd6 0x24b3a48 0x24b39b9 0x217ec0d 0x2174f55 0x158f3f7 0xbc74e 0xbe512 0xbfa26 0xbe4ad 0x224ffda 0x224f956 0x224e449 0x224ab9a 0x24df970 0x247f1c1 0x2442967 0x2441d84 0x2441c9b 0x2c0a7d8 0x2c0a88a 0x1559626 0x2aed 0x2a65)
terminate called throwing an exception
j'ai essayé d'utiliser Exception de point d'arrêt et qu'il ne montre pas la partie du code qui a mal tourné.Il ne s'arrêtera qu'à ce moment -0xbc74e: movl $0, %eax-
Comment puis-je le résoudre? S'il vous plaît aider.
*modifier
J'ai trouvé la partie qui lève l'exception, mais je ne peux pas voir ce qui est mal
- (void)viewDidLoad {
[super viewDidLoad];
[self.activityView startAnimating];
self.mapView.layerDelegate = self;
self.mapView.touchDelegate = self;
self.mapView.calloutDelegate = self;
NSURL *mapUrl = [NSURL URLWithString:kTiledMapServiceURL];
AGSTiledMapServiceLayer *tiledLyr = [AGSTiledMapServiceLayer tiledMapServiceLayerWithURL:mapUrl];
[self.mapView addMapLayer:tiledLyr withName:@"Tiled Layer"];
.
.
.
}
- (void)mapViewDidLoad:(AGSMapView *)mapView {
AGSEnvelope *envelope = [[AGSEnvelope alloc]initWithXmin:29757.610204117 ymin:40055.0379682464 xmax:29884.6992302249 ymax:40236.6028660071 spatialReference:self.mapView.spatialReference];
//call method to set extent, pass in envelope
[self.mapView zoomToEnvelope:envelope animated:YES];
self.mapView.callout.width = 195.0f;
self.mapView.callout.accessoryButtonHidden = YES;
[self.mapView.gps start];
[self.mapView centerAtPoint:self.mapView.gps.currentPoint animated:YES];
[self.activityView stopAnimating];
self.activityView.hidden = YES;
}
Cette ligne est à l'origine de l'erreur self.mapView.layerDelegate = self;
qui, par défaut, l'appel à la méthode mapViewDidLoad
source d'informationauteur sihao
Vous devez vous connecter pour publier un commentaire.
Je pense que cette erreur se produit en raison de la couche qui est exécutée dans le cadre de ce formulaire:
Image du calque == {{inf a, inf}, {0, 0}}
Ici inf est infimum. L'ensemble de ses numéros.
Donc la solution pour éviter ce genre de problème il suffit de créer condition avant le retour de couche.
Comme:
Où simple couche est comme :
Cette condition a résolu mon problème. Essayez-la.
Pour moi cela a été causé par la toView dans ce code néant:
Je sais que cette question n'est pas très récent, mais je veux juste donner une réponse. De toute façon, je devine votre
mapView
est deAGSMapView
et vous avez initialisé de cette façon:Maintenant, je pense que le mieux, si ce n'est la seule façon correcte, pour initialiser c'est à l'aide de
initWithFrame
. Si je ne suis pas sûr pourquoi,mapView
est cassé, si vous utilisezinit
pour l'initialisation.Espère que cette aide.