菜鸟教程小白 发表于 2022-12-13 03:43:32

从 NSMutableDictionary 返回 NSDictionary 的 iOS 不兼容指针类型


                                            <p><p>我在使用 NSMutableDictionaries 从 NSDictionary 返回值时遇到问题。</p>

<p>这是警告信息:</p>

<blockquote>
<p>incompatible pointer types returning &#39;NSDictionary *&#39; from a function
with result type &#39;NSMutableDictionary *&#39;</p>
</blockquote>

<p>代码如下:</p>

<pre><code>- (NSMutableDictionary *)dictionaryWithContentsAtPath:(NSString *)path

{

if (.location == 0)
{

return ];

}

if (.location == 0)

{

return ]];

}

return nil;

}
</code></pre>

<p>请帮助我如何解决此警告。 </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您需要确保返回正确的类型。您的方法声明它返回一个 <code>NSMutableDictionary</code>,但随后只返回一个 <code>NSDictionary</code>。</p>

<p>试试这个:</p>

<pre><code>- (NSMutableDictionary*)dictionaryWithContentsAtPath:(NSString*)path {

    if (.location == 0) {
      return [] mutableCopy];
    }

    if (.location == 0) {
      return ]];
    }

    return nil;
}
</code></pre>

<p>注意:添加了对 <code>mutableCopy</code> 的调用以将您的文字 <code>NSDictionary</code> 转换为可变版本,在第二种情况下,使用称为 <code>dictionaryWithContentsOfFile</code> <code>NSMutableDictionary</code> 子类而不是 <code>NSDictionary</code> 父类的方法。</p></p>
                                   
                                                <p style="font-size: 20px;">关于从 NSMutableDictionary 返回 NSDictionary 的 iOS 不兼容指针类型,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/27245901/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/27245901/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: 从 NSMutableDictionary 返回 NSDictionary 的 iOS 不兼容指针类型