从 NSMutableDictionary 返回 NSDictionary 的 iOS 不兼容指针类型
<p><p>我在使用 NSMutableDictionaries 从 NSDictionary 返回值时遇到问题。</p>
<p>这是警告信息:</p>
<blockquote>
<p>incompatible pointer types returning 'NSDictionary *' from a function
with result type 'NSMutableDictionary *'</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]