提问人:Jason Gindi 提问时间:9/26/2016 最后编辑:Ozgur VatanseverJason Gindi 更新时间:9/27/2016 访问量:701
我必须创建一个可变字典,但我收到“不兼容的指针类型初始化”错误
I have to create a mutable dictionary but i am getting an "Incompatible pointer types initializing" error
问:
我正在尝试创建一个字典,其中包含一个值为“Object_Info”的键。 我有以下代码并收到此错误:
Incompatible pointer types initializing 'NSMutableDictionary *' with an expression of type 'NSDictionary *'
这是我的代码:
#import <Foundation/Foundation.h>
@interface Object_Info : NSObject
{
NSString *product;
float cost;
int qty;
}
@end
@implementation Object_Info
-(id) init {
if (self = [super init]){
product = @"";
cost = 0.0;
qty = 0;
}
return self;
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSMutableDictionary *stock = @{ //ERROR IS HERE!!!!!
@"Lawn Chair" : [Object_Info new],
@"Beach Chair" : [Object_Info new],
@"Kitchen Chair" : [Object_Info new],
@"Futon" : [Object_Info new],
};
for(NSString *key in [stock allKeys]) {
NSLog(@"%@",[stock objectForKey:key]);
}
}
return 0;
}
答:
4赞
HarmVanRisk
9/27/2016
#1
您遇到的问题是您正在尝试将 NSDictionary 分配给 NSMutableDictionary。
试试这个:
NSMutableDictionary *stock = [NSMutableDictionary new];
[stock setDictionary:@{
@"Lawn Chair" : [Object_Info new],
@"Beach Chair" : [Object_Info new],
@"Kitchen Chair" : [Object_Info new],
@"Futon" : [Object_Info new],
}];
评论
0赞
HarmVanRisk
9/27/2016
如果这解决了您的问题,请将其标记为正确答案
评论