Iphone 这段代码中的错误是什么?

Iphone 这段代码中的错误是什么?,iphone,if-statement,compiler-errors,nsmutablearray,Iphone,If Statement,Compiler Errors,Nsmutablearray,在这段代码中,当编译器出现在这条语句上时 if([listofBusiness indexOfObject:feedName]!=NSNotFound) 然后,不要进入codition和for循环中的increment,这样就不会在数组中添加任何元素。这段代码中有什么错误?逻辑似乎颠倒了-您可能希望它在 for(NSDictionary *feed in Feeds) { NSString *feedName=[feed objectForKey:@"name"];

在这段代码中,当编译器出现在这条语句上时

if([listofBusiness indexOfObject:feedName]!=NSNotFound)


然后,不要进入codition和for循环中的increment,这样就不会在数组中添加任何元素。这段代码中有什么错误?

逻辑似乎颠倒了-您可能希望它在

for(NSDictionary *feed in Feeds)
{
  NSString *feedName=[feed objectForKey:@"name"];
                                if(listofBusiness==nil)
{
                                    listofBusiness=[[NSMutableArray alloc]init];
    }
                                    if([listofBusiness indexOfObject:feedName] !=NSNotFound)
        {
        [listofBusiness addObject:feedName];
        [feedName release];
        feedName=nil;   
                                }

                            }

但此时,情况正好相反-您仅在“未找到”时尝试添加对象,即当对象已存在于列表中时。

逻辑似乎相反-您可能希望它在以下情况下添加元素:

for(NSDictionary *feed in Feeds)
{
  NSString *feedName=[feed objectForKey:@"name"];
                                if(listofBusiness==nil)
{
                                    listofBusiness=[[NSMutableArray alloc]init];
    }
                                    if([listofBusiness indexOfObject:feedName] !=NSNotFound)
        {
        [listofBusiness addObject:feedName];
        [feedName release];
        feedName=nil;   
                                }

                            }

但目前情况正好相反——只有当对象“未找到”时才尝试添加该对象,即当该对象已存在于列表中时。

indexOfObject不适用于数组

尝试使用数组的containsObject方法

例如:

[listofBusiness indexOfObject:feedName] == NSNotFound

IndexOfoObject不适用于数组

尝试使用数组的containsObject方法

例如:

[listofBusiness indexOfObject:feedName] == NSNotFound

与您的问题(答案很好)无关,代码中的内存管理完全混乱。运行静态分析器。与您的问题(答案很好)无关,代码中的内存管理都是一团糟。运行静态分析仪。