Las agrupaciones SKSpriteNode en iOS 8 parecen estar asignadas a memoria superpuesta
Podría estar perdiendo algo. Pero mi aplicación actual en la tienda de aplicaciones funciona en iOS 7, pero en iOS 8 falla completamente porque no creará un grupo de sprites preasignado. Parecen estar escritos en la misma dirección a menos que los sprites tengan propiedades específicamente diferentes.
En iOS 7, el siguiente código produce un conjunto con 4 objetos únicos. En iOS 8, el mismo código produce un conjunto con solo 1 objeto:
NSMutableSet *aSet = [NSMutableSet set];
SKColor *sameColor = [SKColor redColor];
CGSize sameSize = CGSizeMake(10, 10);
for (int i = 0; i < 4; i++) {
//allocate a brand new sprite
SKSpriteNode *thisSprite1 = [[SKSpriteNode alloc] initWithColor:sameColor size:sameSize];
[aSet addObject:thisSprite1];
}
NSLog(@"aSet Count: %i", aSet.count);
Resultado de iOS8:
2014-09-09 15: 06: 43.065 MSM [383: 27490] aSet Count: 1
¿Me estoy volviendo loco? Sorprendentemente, casi toda mi aplicación se basa en este concepto de código repetido una y otra vez. Si hago lo mismo, pero uso algo comoNSObject
, entonces el problema desaparece, por lo que parece ser un nuevo cambio enSKSprite
. Sé que puedo solucionarlo con algunas cosas locas, pero es un gran dolor, ya que no debería tener que hacer eso, y esperaba evitar el envío de otra versión.