不兼容的指针类型,使用类型为“NSDictionary *”的表达式初始化“NSMutableDictionary *”

时间:2013-09-13 17:23:01

标签: iphone ios objective-c

我在Xcode中的警告:

Incompatible pointer types initializing 'NSMutableDictionary *' with an expression of type 'NSDictionary *'

对于此代码:

NSMutableDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys:
                                 [NSNumber numberWithLongLong:byteCount],@"bytes",
                                 [NSNumber numberWithLong:fileCount],@"files",nil];
    [dict writeToFile:countsPath atomically:YES];

提前感谢您的帮助

4 个答案:

答案 0 :(得分:5)

改变这个词:

的NSMutableDictionary

的NSDictionary

并修复它将导致的所有错误

答案 1 :(得分:1)

您无法将NSMutableDictionary初始化为[NSDictionary ....但是,您可以在NSMutableDictionary创建并初始化NSDictionary之后将其分配给NSMutableDictionary。原因是因为NSDictionary是{{1}}的子类,所以它可以这样分配,但不是相反。

答案 2 :(得分:1)

我也犯了这样的错误:

  NSMutableDictionary *data = @{ @"value" : value, @"contentArray" : arrayData };

很容易解决这个问题。 :d

答案 3 :(得分:0)

NSMutableDictionary是NSDictionary的子类,您正在尝试反之亦然。