gpt4 book ai didi

objective-c - "Incompatible pointer to integer conversion initializing ' int ' with an expression of type ' NSNumber * '"

转载 作者:技术小花猫 更新时间:2023-10-29 10:19:29 31 4
gpt4 key购买 nike

我怀疑这真的很简单,但我正在尝试获取一个存储在字典中的 int,而我正在使用的行是这样的......

 int mapX = [NSNumber numberWithInt:[templateObject valueForKey:@"mapX"]];

但它给了我错误...

Incompatible pointer to integer conversion sending 'id' to parameter of type 'int'

Incompatible pointer to integer conversion initializing 'int' with an expression of type 'NSNumber *';

如果我尝试...

NSNumber *mapX = [NSNumber numberWithInt:[templateObject valueForKey:@"mapX"]];

我基本上得到了同样的错误。我知道我可能只是使用了错误的语法,但我不确定还能怎么写。

感谢您的帮助。

最佳答案

几点:

  • [NSNumber numberWithInt:[templateObject valueForKey:@"mapX"]];

    返回一个 NSNumber*,您正试图将其存储在一个 int 中。

  • NSNumber* mapX = [NSNumber numberWithInt:[templateObject valueForKey:@"mapX"]];

    也不会工作,因为 [templateObject valueForKey:@"mapX"] 不是 int。您只能在 NSDictionary 中存储对象,而不能存储原始类型。

您可能想尝试(假设我的类型正确)

NSNumber* mapXNum = [templateObject valueForKey:@"mapX"];
int mapX = [mapXNum intValue];

关于objective-c - "Incompatible pointer to integer conversion initializing ' int ' with an expression of type ' NSNumber * '",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13238223/

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