简体   繁体   中英

float [] array problem in objective c

I am coding in xcode by objective c. I came up with a problem. I want to try like

declare float[] weights; 

results looks like this

weight[0] = 0.5
weight[1] = 0.4
weight[2] = 0.9

Ah

NSMutableArray *weight;

Am

weights = [NSMutableArray array];

for(int i=0; i < 4; i++) {
    float randomNumber = arc4random() % 11;
    [weights addObject:[[NSNumber alloc] initWithFloat:randomNumber]];
    NSLog(@" for loops color prob weghts=%f",[weights objectAtIndex:i] );

}

I don't know what is wrong with this code. Please help me to find out?

When I print it by NSLOG " all [weight = 0.000] and also How do I access like [weight floatvalue].

secondly, when I create this class to another class there are weight [0],[1],[2],[3] and no values

在NSLog中打印时,它应该是[[weights objectAtIndex:i] floatValue]

NSNumber is a class, not a integral type.

Therefore, you must use %@, not %f.

NSLog(@" for loops color prob weghts=%@",[weights objectAtIndex:i] );

Alternatively, use floatValue, like you said. You may need to cast the object into NSNumber first (for type safety)

NSNumber *number = (NSNumber *)[weights objectAtIndex:i];
NSLog(@" for loops color prob weghts=%f", [number floatValue]);

Also, you are leaking objects here, because you did not release them after putting them in the array. Either release after placing them in array, or use [NSNumber numberWithFloat:]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM