好的,我正在努力解决这个问题。我已经搜索了过去的一小时,我不知道我做错了什么。我正在尝试获取发送者的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]
位没有被正确使用的东西,但我找不到一个有效的例子。
谢谢!
答案 0 :(得分:16)
让我们分析一下错误信息:
初始化(NSInteger nt
)从整数(*
)生成指针([str integerValue]
)而不进行强制转换。
这意味着您正在尝试将非指针类型的变量([str integerValue]
,它返回NSInteger
)分配给 指针类型的变量。 (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
是机器相关的整数数据类型的类型包装器,其定义如下:
#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