如何创建一个方法来返回一个数组与另一个类的对象?

我有一类AddressCards.h/m和另一类AddressBook ,现在我想创建一个搜索方法在AddressBook类中查找名称,但是出现一些错误。

我想我需要我的方法来返回一个AddressCards类型的指针,但我不知道如何返回它,因为我需要一个数组持有的名称,以防万一有多个匹配项。

这是我现在的代码:

  -(NSMutableArray *) searchName:(NSString *) someName{

        NSMutableArray *results = [NSMutableArray alloc];

        for (NSString *name in book)
        {
            if ([someName caseInsensitiveCompare:name] == NSOrderedSame)
                [results addObject:name];
        }
        return results;
    }

@end

我在这行中得到错误: if ([someName caseInsensitiveCompare:name] == NSOrderedSame)那说signal 1 SIGABRT ,我不知道它是什么:/

这是添加地址卡的方法:

-(void) addCard:(AddressCards *)theCard{

    [book addObject:theCard];
}

bookAddressCards一个NSMutableArray,但是您试图使用NSString( name )遍历对象。

您应该迭代使用addressCards对象,然后使用相应的name属性进行比较。 我相信你应该实现类似于以下代码的搜索方法:

-(NSMutableArray *) searchName:(NSString *) someName{

    NSMutableArray *results = [[NSMutableArray alloc] init];

    for (AddressCards *addressCard in book)
    {
        // do your comparison check here
        // assuming that you have a name property in AddressCards class

        if ([addressCard.name rangeOfString:someName].location != NSNotFound)
            [results addObject:addressCard.name];
    }
    return results;
}

希望这可以帮助。

编辑:使用此答案根据需要修改比较代码。


一个问题是在创建results数组时你没有调用init

NSMutableArray *results = [NSMutableArray alloc];

应该:

NSMutableArray *results = [[NSMutableArray alloc]init];

这肯定会导致SIGABRT错误。

链接地址: http://www.djcxy.com/p/74005.html

上一篇: How to create a method to return an array with object of another class?

下一篇: searching array elements within another array