[英]NSInvalidArgumentException', reason: '-[__NSCFConstantString objectForKey:]: unrecognized selector sent to instance 0x10256a1b0'
[英]'NSInvalidArgumentException', reason: '-[__NSCFConstantString addObject:]: unrecognized selector sent to instance
-(void)downloadResult:(id)data
{
if([data isKindOfClass:[NSArray class]])
{
if ([data count]==3)
{
if ([dataResultDictionary count])
{
[[dataResultDictionary objectForKey:[data objectAtIndex:0]] addObject:[NSMutableArray arrayWithObjects:[data objectAtIndex:1],[data lastObject], nil]];
}
else
{
[dataResultDictionary setObject:[NSMutableArray arrayWithObject:[NSMutableArray arrayWithObjects:[data objectAtIndex:1],[data lastObject], nil]] forKey:[data objectAtIndex:0]];
}
if([dataResultDictionary count])
{
if ([[dataResultDictionary objectForKey:[data objectAtIndex:0]] count] == requiredResultCount)
{
[downloadControlQueue cancelAllOperations];
[downloadControlQueue release];
downloadControlQueue = nil;
processing = YES;
[self procesResultData];
}
}
}
else
{
BOOL errorResult = TRUE;
if ([data count])
{
if ([[data lastObject] isKindOfClass:[NSMutableDictionary class]]) {
if ([[data lastObject] count]) {
if ([[[[data lastObject] allValues] objectAtIndex:0] count]) {
[dataResultDictionary setObject:[data lastObject] forKey:[data objectAtIndex:0]];
errorResult = false;
}
}
}
}
if(errorResult)
{
[dataResultDictionary setObject:@"" forKey:[data objectAtIndex:0]];
}
if ([dataResultDictionary count] == requiredResultCount) {
[downloadControlQueue cancelAllOperations];
[downloadControlQueue release];
downloadControlQueue = nil;
processing = YES;
[self procesResultData];
}
}
}
}
我正在從服務器獲取數據。 我想以圖像中的%值顯示下載結果。 但是我要崩潰了。 最初,此方法正在工作。 我在圖像中顯示的數據高達70%,但其余部分已崩潰。請幫助我
正如rakeshNS所建議的那樣,回答您的查詢似乎[dataResultDictionary objectForKey:[data objectAtIndex:0]]
不是NSMutableArray
。 相反,它是一個NSString
。
為什么要嘗試在已解析的數組中添加addObject:
btw是不可addObject:
( NSArray
)? 您應該真正重新考慮解析邏輯。 如果需要,請創建一個單獨的模型類來存儲解析的數據。 您可以創建可變數組並將值存儲在此模型類中。
在您的情況下, [dataResultDictionary objectForKey:[data objectAtIndex:0]]
不是數組,而是NSString。 因此,您將獲得例外。 嘗試
if ([dataResultDictionary count]) {
if([[dataResultDictionary objectForKey:[data objectAtIndex:0]] isKindOfClass:[NSArray class]]){
[[dataResultDictionary objectForKey:[data objectAtIndex:0]] addObject:[NSMutableArray arrayWithObjects:[data objectAtIndex:1],[data lastObject], nil]];
}
}
else
{
[dataResultDictionary setObject:[NSMutableArray arrayWithObject:[NSMutableArray arrayWithObjects:[data objectAtIndex:1],[data lastObject], nil]] forKey:[data objectAtIndex:0]];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.