Existe-t-il un moyen de vérifier si un ensemble est vide?Vérification de NSSet vide?
NSMutableSet *setEmpty = [[NSMutableSet alloc] init];
// Code to do things...
// Check for empty set?
[setEmpty release];
gary
Existe-t-il un moyen de vérifier si un ensemble est vide?Vérification de NSSet vide?
NSMutableSet *setEmpty = [[NSMutableSet alloc] init];
// Code to do things...
// Check for empty set?
[setEmpty release];
gary
Vous pouvez utiliser [nombre setEmpty] pour voir combien d'éléments sont dans l'ensemble ... donc:
if ([setEmpty count] == 0) {
ou
if (![setEmpty count]) {
etc. ..
Je n'ai pas vu un explici t 'isEmpty' méthode sur http://developer.apple.com/mac/library/documentation/cocoa/Reference/Foundation/Classes/NSSet_Class/Reference/Reference.html mais si elle existe, allez-y plutôt que de vérifier le nombre.
Merci Malaxeur, parfait je l'ai cherché dans les docs et dans le Xcode auto-complet et je l'ai manqué deux fois :(Je ne pense pas qu'il y ait un 'isEmpty' car j'ai manqué une erreur de méthode lors du test. Quoi qu'il en soit, c'est parfait, merci pour la réponse et votre temps – fuzzygoat
Si vous l'utilisez beaucoup, vous pouvez ajouter une méthode 'isEmpty' en tant que catégorie sur' NSSet', un corps comme '- (BOOL) isEmpty {return [compte auto] == 0;} '. – mipadi
... voici le single le plus fichier utilisé dans mon référentiel partagé: 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); }
Cette fonction fonctionnera sur tous les contenants de cacao, les chaînes et NSData.
Qu'en est-il de celui-ci pour les grands ensembles? Le but est de ne pas faire le compte à chaque fois.
NSSet *mySet = ...
if ([mySet anyObject] == nil)
{
// The set is empty
}
Ceci est une tâche assez simple. Vous devriez prendre l'habitude de regarder les docs pour des réponses comme celles-ci. –
Salut Brad, j'ai vérifié les documents, mais j'ai raté l'entrée pour le compte. Plus d'erreur de ma part que la paresse rampante. – fuzzygoat