Проверка пустой NSSet? Есть ли способ проверить, является ли набор пустым? NSMutableSet *setEmpty = [[NSMutableSet alloc] init]; // Code to do things... // Check for empty set? [setEmpty release]; Гэри Ответ 1 Вы можете использовать [setEmpty count], чтобы узнать, сколько элементов в наборе... так: if ([setEmpty count] == 0) { или if (![setEmpty count]) { и т.д... Я не видел явного метода isEmpty на http://developer.apple.com/mac/library/documentation/cocoa/Reference/Foundation/Classes/NSSet_Class/Reference/Reference.html, но если он существует, перейдите для этого, вместо того, чтобы проверять счет. Ответ 2 Как насчет этого для действительно больших наборов? Цель состоит в том, чтобы не делать счет каждый раз. NSSet *mySet = ... if ([mySet anyObject] == nil) { // The set is empty } Ответ 3 ... здесь самый популярный файл в моем общем хранилище: 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.
Ответ 1 Вы можете использовать [setEmpty count], чтобы узнать, сколько элементов в наборе... так: if ([setEmpty count] == 0) { или if (![setEmpty count]) { и т.д... Я не видел явного метода isEmpty на http://developer.apple.com/mac/library/documentation/cocoa/Reference/Foundation/Classes/NSSet_Class/Reference/Reference.html, но если он существует, перейдите для этого, вместо того, чтобы проверять счет.
Ответ 2 Как насчет этого для действительно больших наборов? Цель состоит в том, чтобы не делать счет каждый раз. NSSet *mySet = ... if ([mySet anyObject] == nil) { // The set is empty }
Ответ 3 ... здесь самый популярный файл в моем общем хранилище: 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.