我必须创建一个可变字典,但我收到“不兼容的指针类型初始化”错误

I have to create a mutable dictionary but i am getting an "Incompatible pointer types initializing" error

提问人:Jason Gindi 提问时间:9/26/2016 最后编辑:Ozgur VatanseverJason Gindi 更新时间:9/27/2016 访问量:701

问:

我正在尝试创建一个字典,其中包含一个值为“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;
}
iOS的 目标-C 字典 可变

评论


答:

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
如果这解决了您的问题,请将其标记为正确答案