2016-11-21 70 views
0

我从数据库字典中获得一个或多个对象NSNull。将来,我不能以任何方式与应用程序崩溃一起与他一起工作。我试过很多方法可以从字典中删除NSNull对象,方法removeObjectForKey但任何试图做到这一点,我得到一个错误,是理性的数组:我从数据库字典中获得一个或多个对象NSNull

- [__ NSArrayM removeObjectForKey:]: unrecognized selector sent to an instance 

我不能用方法数组中删除这些对象removeObjectAtIndex作为这本词典。我只想到如何做到这一点是通过类型去除这些对象。是否可以这样做,从字典中删除匹配NSNull类型的对象?或者也许有另一个解决这个问题的方法?

谢谢你的帮助!

+2

发布您的源'词典','数组',或任何可能的内容。 – Frankie

+0

'NSArrayM'显然是一个可变数组('NSMutableArray'),而不是字典。数组是基于索引的,字典是基于关键字的。 – vadian

回答

0

这个循环(改编自this post)应该可以帮助您用您选择的字符串(原谅错别字,我不在我的电脑前)替换NSnull条目。

for(NSString *key in yourDictionary) { 
    id dictionaryEntry= [yourDictionary objectForKey:key]; 
    if(!dictionaryEntry) { 
    [newDictionary setObject:@"string" forKey:key]; 
    } else { 
    [newDictionary setObject:[yourDictionary objectForKey:key] forKey:key]; 
    } 
} 
0

你说:

And I can not remove these objects by method the array "removeObjectAtIndex" as this dictionary.

很遗憾,您的错误:

[__ NSArrayM removeObjectForKey:]: unrecognized selector

不同意你的看法。你有一个数组。而你不能使用removeObjectAtIndex的原因是因为它是不可变的。

+0

问题在于我保存在字典中的数据库对象中,并且我返回了字典。但是当得到nsnull然后返回一个数组 –

+0

然后,这听起来像一个不同的问题。上述问题的解决方案是,您正尝试调用数组上的字典方法。 – Frankie

0

您从一个阵列

Note down that you cannot remove a key from an array. Than this error is obvious.

而且删除键removeObjectAtIndex

Make sure your array should be mutable. Then you can use removeObjectAtIndex.

希望它为你工作。

相关问题