I’m putting in the values to a struct here :
[self createEntityWithX:20 andY:20 withType:0 withWidth:20 andLength:20 atSpeed:5];
...
...
-(void)createEntityWithX:(int)newEntityX andY:(int)newEntityY withType:(int)newEntityType withWidth:(int)newEntityWidth andLength:(int)newEntityLength atSpeed:(int)newEntitySpeed
{
Entity tmpEntity;
tmpEntity.entityX = newEntityX;
tmpEntity.entityY = newEntityY;
tmpEntity.entityLength = newEntityLength;
tmpEntity.entityWidth = newEntityWidth;
tmpEntity.entityType = newEntityType;
tmpEntity.entitySpeed = newEntitySpeed;
NSValue *tmp = [NSValue valueWithBytes:&tmpEntity objCType:@encode(struct Entity)];
[entityArray addObject:tmp];
}
-(Entity)retreiveEntityFromValue:(NSValue *)value
{
Entity entity1;
[value getValue:&entity1];
return entity1;
}
And the data is being scrambled when i get it back? I created the entity with : X:20 Y:20 Width:20 and getting back x : 1712736 Y : 0 Width : 0?
X is completely random, but the rest remain 0
Where have i gone wrong?
Instead of using integers try using floats (1) or you could pass the data as a point(2).
1)http://www.techotopia.com/index.php/Objective-C_2.0_Data_Types#float_Data_Type
2)http://mobiledevelopertips.com/c/cgrect-cgsize-and-cgpoint.html