gpt4 book ai didi

ios - NSDictionary 的键名在 NSObject 之后发生变化

转载 作者:行者123 更新时间:2023-11-29 03:01:10 24 4
gpt4 key购买 nike

我有一个奇怪的问题。

M_DrugListRow have these properties:NAME,SEGMENT,ATTRIBUTE,COLORCODE,ID,DESCRIPTION

dict have these drug_name,segment,attribute,colorcode,..

M_DrugListRow *m= [[M_DrugListRow alloc]initDrugRow:[arr_for_picker objectAtIndex:row] val:0]
[dict setValue:m.NAME forKeyPath:@"drug_name"];

在此代码字典之后有 M_DrugListRow 的键(NAME,SEGMENT,ATTRIBUTE,COLORCODE,DESCRIPTION),而不是他自己的键(name,segment,attribute,colorcode,drug_name)所以它在我的代码中给出了错误。

如果我把它改成这段代码,它就可以工作了:

[dict setValue:[[arr_for_picker objectAtIndex:row]objectForKey:@NAME"] forKeyPath:@"drug_name"];

我用第一种太多了。但它的效率并不高。为什么会发生这种情况?我该如何解决这个问题?

代码:M_DrugListRow.h

             @interface M_DrugListRow : M_Drug
-(id)initDrugRow:(M_Drug*)drugModel val:(NSInteger)val
{
self=[super init];

@try {

self=[self initDrug:[NSDictionary dictionaryWithPropertiesOfObject:drugModel]];
liquid =[[NSMutableArray alloc]init];
method =[[NSMutableArray alloc]init];

if(val){
liquid= [DataAccessLiquid drugliquid:[VC_Login getGuid] drug_id:self.ID];
method= [DataAccessMethod:[VC_Login getGuid] drug_id:self.ID];

}

}
@catch (NSException *exception) {

}
@finally {

}
return self;
}

M_Drug.h

   -(id)initDrug:(NSDictionary*)par
{
self=[super init];
dict =[[NSDictionary alloc]initWithDictionary:par];
@try {
ATTRIBUTE1= [par valueForKey:@"ATTRIBUTE1"];
NAME= [par valueForKey:@"NAME"];
COLORCODE= [[par valueForKey:@"COLORCODE"]boolValue];
DESCRIPTION= [par valueForKey:@"DESCRIPTION"];
SEGMENT= [par valueForKey:@“SEGMENT”];
ID= [[par valueForKey:@"ID"]integerValue];

}
@catch (NSException *exception) {

}
@finally {

}

return self;
}

最佳答案

您需要使用 NSMutableDictionary 而不是 NSDictionary。这是 NSDictionary 的子类并且是可编辑的。

看看这个answer一个很好的解释。

一个例子:

NSMutableDictionary *mdict = [[NSMutableDicionary alloc]init];
[mdict setObject:@"Hello World!" forKey:@"whateverKey"]

阅读类(class)引用 here .

关于ios - NSDictionary 的键名在 NSObject 之后发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23288535/

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