Objective c 检查空NSSet?
有没有办法检查集合是否为空Objective c 检查空NSSet?,objective-c,Objective C,有没有办法检查集合是否为空 NSMutableSet *setEmpty = [[NSMutableSet alloc] init]; // Code to do things... // Check for empty set? [setEmpty release]; gary您可以使用[setEmpty count]查看集合中有多少元素。。。因此: if ([setEmpty count] == 0) { 或 等等 我没有在上看到显式的“isEmpty”方法,但如果它存在,请使用它
NSMutableSet *setEmpty = [[NSMutableSet alloc] init];
// Code to do things...
// Check for empty set?
[setEmpty release];
gary您可以使用[setEmpty count]查看集合中有多少元素。。。因此:
if ([setEmpty count] == 0) {
或
等等
我没有在上看到显式的“isEmpty”方法,但如果它存在,请使用它,而不是检查计数
…以下是我的共享存储库中使用最多的一个文件:
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);
}
静态内联BOOL为空(id thing){
返回事物==零
||([事物响应选择器:@selector(length)]
&&[(NSData*)事物长度]==0)
||([事物响应选择器:@selector(count)]
&&[(NSArray*)事物计数]==0);
}
-
此函数将用于所有Cocoa容器、字符串和NSData。对于真正大的集合,此函数如何?目标是不要每次都进行计数
NSSet *mySet = ...
if ([mySet anyObject] == nil)
{
// The set is empty
}
这是一项相当简单的任务。你应该养成看文档的习惯,看看这些答案。嗨,布拉德,我确实检查了文档,但是错过了计数的条目。我犯了更多的错误,而不是疯狂的懒惰。谢谢你Malaxer,完美我在文档和Xcode自动完成中都找到了,但两次都没有找到:(我不认为存在“isEmpty”,因为我在测试它时遇到了一个缺少的方法错误。不管怎样,count是完美的,感谢您的回答和您的时间。如果您经常使用它,您可以在
NSSet
上添加一个isEmpty
方法作为一个类别,像-(BOOL)这样的主体是空的{return[self count]==0;}
。
NSSet *mySet = ...
if ([mySet anyObject] == nil)
{
// The set is empty
}