初始化使得整型指针没有强制转换
好的,我正在用这个很难。 我已经search了过去的一小时,我不明白我做错了什么。 我试图把发送者的currentTitle,然后将其转换为一个整数,所以我可以在调用列表中使用它。
NSString *str = [sender currentTitle]; NSInteger *nt = [str integerValue]; // this is where the error appears // NSString *nextScreen = [NSString stringWithFormat:@"Screen_%@.jpg", [screenList objectAtIndex:nt]];
我认为这是与[str integerValue]
位不正确使用,但我找不到一个有效的例子。
谢谢!
我们来分析一下错误信息:
初始化( NSInteger nt
)从整数( [str integerValue]
)中生成指针( *
)而不进行[str integerValue]
。
这意味着你正试图把一个非指针types的variables( [str integerValue]
,它返回一个NSInteger
)赋给一个指针types的variables。 ( NSInteger *
)。
摆脱NSInteger
之后的*
,你应该没问题:
NSString *str = [sender currentTitle]; NSInteger nt = [str integerValue]; // this is where the error appears // NSString *nextScreen = [NSString stringWithFormat:@"Screen_%@.jpg", [screenList objectAtIndex:nt]];
NSInteger
是一个机器相关的整型数据types的封装器,它的定义如下:
#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