Why does this not work:
NSInteger temp = 20;
[userSettingsFromFile setObject:temp forKey:@\"aTemp\"];
but this does:
[userS
NSInteger isn't an object -- it's simply typecast to int on 32-bit or long on 64-bit. Since NSDictionary can only store objects, you need to wrap the integer into an object before you can store it. Try this:
NSInteger temp = 20;
[userSettingsFromFile setObject:[NSNumber numberWithInteger:temp]
forKey:@"aTemp"];