开发者

float [] array problem in objective c

开发者 https://www.devze.com 2023-04-06 19:05 出处:网络
I am coding in xcode by objective c. I came up with a problem. I want to try like declare float[] weights;

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

A.h

NSMutableArray *weight;

A.m

weights = [NSMutableArray array];

for(int i=0; i < 4; i++) {
    float randomNumber = a开发者_StackOverflow中文版rc4random() % 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


It should be [[weights objectAtIndex:i] floatValue] when you print it in your NSLog


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:]

0

精彩评论

暂无评论...
验证码 换一张
取 消