0

I have a plist file with string keys and number values. I think I managed to fill an NSDictionary object with the plist contents just fine with the code:

NSBundle* bun = [NSBundle mainBundle];
NSString* path = [bun pathForResource:@"Tempos" ofType:@"plist"];

tempos = [NSDictionary dictionaryWithContentsOfFile:path];


Now, here's the part I don't understand.

id object = [tempos objectForKey:@"Allegro"];
NSLog(@"bpm: %@", object);

Outputs the desired number, 168.

NSInteger beats = (NSInteger)[tempos objectForKey:@"Allegro"];
NSLog(@"bpm: %ld", beats);

Instead outputs, 43203.


More importantly, when I try

bpm = (NSInteger)[tempos objectForKey:@"Allegro"];

I get 43203 assigned to bpm. How do I get 168 assigned to bpm instead??

425nesp
  • 6,936
  • 9
  • 50
  • 61

1 Answers1

1

I think using this should work:

int beats = [[tempos objectForKey:@"Allegro"] intValue];
NSLog(@"bpm: %i", beats);
Fire30
  • 166
  • 7