objective c - Xcode warning about precision -



objective c - Xcode warning about precision -

this question has reply here:

objective c implicit conversion loses integer precision 'nsuinteger' (aka 'unsigned long') 'int' warning 3 answers

here code:

categoryloaded = [[nsuserdefaults standarduserdefaults] integerforkey:@"categorysaved"];

here error:

"implicit conversion loses integer precision: 'nsinteger' (aka 'long') 'int'

how resolve this?

from sdk header:

#if __lp64__ || (target_os_embedded && !target_os_iphone) || target_os_win32 || ns_build_32_like_64 typedef long nsinteger; typedef unsigned long nsuinteger; #else typedef int nsinteger; typedef unsigned int nsuinteger; #endif

so see, nsinteger, homecoming type integerforkey:, can either int or long, different sizes. you're building 64 bit, likely, means you're assigning long is, apparently, int.

so either alter type of categoryloaded big enough:

nsinteger categoryloaded;

...or utilize c-style cast says "shut know i'm doing":

categoryloaded = (int)[[nsuserdefaults standarduserdefaults] integerforkey:@"categorysaved"];

objective-c

Comments

Popular posts from this blog

model view controller - MVC Rails Planning -

ruby on rails - Devise Logout Error in RoR -

html - Submenu setup with jquery and effect 'fold' -