Xcode 7, Obj-C, “Null transmis à un destinataire qui requiert un non-argument null”
Dans Xcode 7, je suis de cet avertissement:
Null passed to a callee that requires a non-null argument
.. à partir de ce néant de l'initialisation d'un NSMutableArray...
sectionTitles = [[NSMutableArray alloc] initWithObjects:nil];
J'ai trouvé que je devrais être à l'aide de removeAllObjects
à la place.
[sectionTitles removeAllObjects];
Cependant, cela ne me permet pas d'évaluer un sectionTitles.count == 0
. Je l'ai fait essayer sectionTitles == nil
, mais à moins que j'utilise iniWithObjects
je ne peux pas ajouter des objets plus tard.
J'ai besoin de mettre le tableau à néant ou zéro, lorsque j'actualise ma source de données, quand il n'y a pas de documents. Je ne semble pas être en mesure d'utiliser addObject
pour ajouter des éléments à moins que j'ai utilisé initWithObjects
.
Vous ne pouvez travailler avec un objet initialisé. L'appel de compter sur le néant serait, cependant.
Soit
if (sectionTitles.count != nil)
provoque un avertissement?Soit
[sectionTitles removeAllObjects]
ou sectionTitles = [NSMutableArray array]
doivent travailler, ils sont logiquement les mêmes (bien que les performances peuvent différer).
OriginalL'auteur Jules | 2015-06-27
Vous devez vous connecter pour publier un commentaire.
Pourquoi n'essayez-vous pas:
ou à l'un des suivants:
peut-être que certains idiot:
Il y a beaucoup de façons de créer des vides mutable tableaux. Il suffit de lire la doc.
OriginalL'auteur Jeffery Thomas
Passant non-null paramètres n'est qu'en partie la réponse.
Lire NSHipster l'article complet.
Dans oder pour profiter de la même contrat dans votre propre code, utilisez
nonnull
ounullable
:Obj-C
OriginalL'auteur SwiftArchitect
Eu le même message d'erreur lors de l'initialisation d'un NSMutableArray avec des zéros,
Changé
NSMutableArray
est un tableau d'objet. Les littéraux, comme 0 ou 1, ne sont pas des objets.@0
est un raccourci pourNSNumber
(un objet) initialisé avec une valeur de 0.OriginalL'auteur Scott_Bailey_