有没有办法检查一个集合是否为空?
NSMutableSet *setEmpty = [[NSMutableSet alloc] init];
// Code to do things...
// Check for empty set?
[setEmpty release];
加里
答案 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.hstatic inline BOOL IsEmpty(id thing) { return thing == nil || ([thing respondsToSelector:@selector(length)] && [(NSData *)thing length] == 0) || ([thing respondsToSelector:@selector(count)] && [(NSArray *)thing count] == 0); }
此函数适用于所有Cocoa容器,字符串和NSData。