Jim*_*ery 19 casting objective-c
我有一些Objective C代码,我将其NSString转换为int:
NSString *a=@"123abc";
NSInteger b=(int) a;
NSLog(@"b: %d",b);
Run Code Online (Sandbox Code Playgroud)
并NSLog产生此输出:
b: 18396
Run Code Online (Sandbox Code Playgroud)
任何人都可以向我解释为什么会这样吗?
我在印象类型下将字符串转换为整数将从字符串中获取数值.
Cfr*_*Cfr 35
你有指向NSString对象的指针的整数值.要将字符串解析为整数,您应该:
NSString *a = @"123abc";
NSInteger b = [a integerValue];
Run Code Online (Sandbox Code Playgroud)
gio*_*shc 10
要获得数值,请使用:
int val = [stringObj intValue];
Run Code Online (Sandbox Code Playgroud)
或者NSInteger:
NSInteger val = [stringObj integerValue];
Run Code Online (Sandbox Code Playgroud)
将对象转换为整数时,您将获得指向内存地址的指针.您可以调用以[a integerValue]获取字符串的整数值.
同样在铸造它时最好使用NSIntegerinstate int.因为当使用64位操作系统时,a NSInteger将是64位.