gpt4 book ai didi

objective-c - 初始化使指针来自整数而不进行强制转换

转载 作者:可可西里 更新时间:2023-11-01 04:10:25 25 4
gpt4 key购买 nike

好吧,我很难接受这个。在过去的一个小时里,我一直在搜索它,但我不知道自己做错了什么。我正在尝试获取发件人的 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],它返回一个 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

关于objective-c - 初始化使指针来自整数而不进行强制转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4187488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com