Objective c 转换NSDictionary';s键输入一个NSN号码

Objective c 转换NSDictionary';s键输入一个NSN号码,objective-c,nsdictionary,Objective C,Nsdictionary,如何将密钥转换为NSN号码?此代码给出了错误信息: 无论我如何尝试,最终总会出现错误:不兼容的整数到指针转换从'NSIntegar'(也称为'int')分配给'NSNumber' 这是我的咨询对象数据: #import <Foundation/Foundation.h> @interface ConsultantData : NSObject { NSString *name; NSNumber *conID; } @property (nonatomic, r

如何将密钥转换为NSN号码?此代码给出了错误信息:

无论我如何尝试,最终总会出现错误:不兼容的整数到指针转换从'NSIntegar'(也称为'int')分配给'NSNumber'

这是我的咨询对象数据:

#import <Foundation/Foundation.h>

@interface ConsultantData : NSObject 
{
    NSString *name;
    NSNumber *conID;
}

@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSNumber *conID;

@end

#import "ConsultantData.h"


@implementation ConsultantData

@synthesize name;
@synthesize conID;

-(void) dealloc
{
    [name release];
    [conID release];

    [super dealloc];
}

@end
#导入
@接口顾问数据:NSObject
{
NSString*名称;
NSNumber*conID;
}
@属性(非原子,保留)NSString*名称;
@属性(非原子,保留)NSNumber*conID;
@结束
#导入“ConsultantData.h”
@实施咨询数据
@综合名称;
@合成锥虫;
-(无效)解除锁定
{
[姓名发布];
[锥虫释放];
[super dealoc];
}
@结束
如果我尝试成为班上的一员,它永远不会变成真的。若我尝试IsKind of Class,它会告诉我它是一个NSString

consultants是我从服务器收到的一个字典,它通过一个XMLRPC函数传递(服务器是PHP)。据我所见,服务器字典中的所有内容都是字符串

consultantData.conID=[[NSNumber numberWithInteger:key]integerValue]

上述行应为:

consultantData.conID = [NSNumber numberWithInteger:[key integerValue]];
consultantData.conID=[[NSNumber numberWithInteger:key]integerValue]

上述行应为:

consultantData.conID = [NSNumber numberWithInteger:[key integerValue]];

可能是你点错了

consultantData.conID = [[NSNumber numberWithInteger:key] integerValue];
意味着

NSNumber *foo = [NSNumber numberWithInteger:key];
NSInteger bar = [foo integerValue];
consultantData.conID = bar;
你可能想要

consultantData.conID = [NSNumber numberWithInteger:[key integerValue]];
以详细的形式:

NSInteger foo = [key integerValue];
NSNumber *bar = [NSNumber numberWithInteger:foo];
consultantData.conID = bar;

可能是你点错了

consultantData.conID = [[NSNumber numberWithInteger:key] integerValue];
意味着

NSNumber *foo = [NSNumber numberWithInteger:key];
NSInteger bar = [foo integerValue];
consultantData.conID = bar;
你可能想要

consultantData.conID = [NSNumber numberWithInteger:[key integerValue]];
以详细的形式:

NSInteger foo = [key integerValue];
NSNumber *bar = [NSNumber numberWithInteger:foo];
consultantData.conID = bar;

integerValue返回一个NSInteger,它不是NSNumber。您应该直接传递NSN号码:

consultantData.conID = [NSNumber numberWithInteger:[key integerValue]];

integerValue返回一个NSInteger,它不是NSNumber。您应该直接传递NSN号码:

consultantData.conID = [NSNumber numberWithInteger:[key integerValue]];

假设密钥是NSString,则无法将密钥传递给[NSNumber numberWithInteger:key],因为它不是整数!使用键上的intValue方法获取整数,然后将整数转换为NSNumber,如下所示:

consultantData.conID = [NSNumber numberWithInteger:[key intValue]];

假设密钥是NSString,则无法将密钥传递给[NSNumber numberWithInteger:key],因为它不是整数!使用键上的intValue方法获取整数,然后将整数转换为NSNumber,如下所示:

consultantData.conID = [NSNumber numberWithInteger:[key intValue]];

你的第一点不正确。与快速枚举一起使用时。
.allKeys
不是必需的。您的密码是正确的。显然,我忽略它的时候是我想要迭代这些值的时候。谢谢你的更正!你的第一点不正确。与快速枚举一起使用时。
.allKeys
不是必需的。您的密码是正确的。显然,我忽略它的时候是我想要迭代这些值的时候。谢谢你的更正!哈这非常有效,谢谢你,也感谢其他人,他们也提供了正确的答案。我的头撞在墙上的时间要长得多,我本应该翻过这个的。哈!这非常有效,谢谢你,也感谢其他人,他们也提供了正确的答案。我的头撞在墙上的时间要长得多。