检查空NSSet?

时间:2009-12-03 16:02:46

标签: objective-c

有没有办法检查一个集合是否为空?

NSMutableSet *setEmpty = [[NSMutableSet alloc] init];

// Code to do things...

// Check for empty set?

[setEmpty release];

加里

3 个答案:

答案 0 :(得分:26)

您可以使用[setEmpty count]查看集合中有多少元素......所以:

if ([setEmpty count] == 0) {

if (![setEmpty count]) {

等...

我没有在http://developer.apple.com/mac/library/documentation/cocoa/Reference/Foundation/Classes/NSSet_Class/Reference/Reference.html上看到明确的'isEmpty'方法,但如果它存在,那就去做,而不是检查计数。

答案 1 :(得分:4)

真正的大集怎么样?目标是每次都不做计数。

NSSet *mySet = ...

if ([mySet anyObject] == nil)
{
    // The set is empty
}

答案 2 :(得分:2)

...这是我共享存储库中最常用的文件: DMCommonMacros.h
static inline BOOL IsEmpty(id thing) {
    return thing == nil
        || ([thing respondsToSelector:@selector(length)]
        && [(NSData *)thing length] == 0)
        || ([thing respondsToSelector:@selector(count)]
        && [(NSArray *)thing count] == 0);
}

- Wil Shiply

此函数适用于所有Cocoa容器,字符串和NSData。