Question

J'ai le code suivant qui produit cette erreur. Je ne comprends pas pourquoi le message de subarrayWithRange est envoyé à une chaîne? Quand il est clairement un tableau?

static const int kItemsPerView = 20;
NSRange rangeForView = NSMakeRange( page * kItemsPerView, kItemsPerView );

NSMutableArray *temp = [[APP_DELEGATE keysArray] mutableCopyWithZone:NULL]; 
NSArray *itemsForView = [temp subarrayWithRange:rangeForView];

for (int loopCounter = 0;loopCounter < r*c;loopCounter++){
    NSLog(@"%i: %@ ", loopCounter, [itemsForView objectAtIndex:loopCounter]);
}

Erreur:

-[NSCFString subarrayWithRange:]: unrecognized selector sent to instance 0x6b071a0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: [NSCFString subarrayWithRange:]:

Merci

Était-ce utile?

La solution

Ces types d'erreurs sont généralement liées à la gestion de la mémoire. Essentiellement, vous envoyez un message à une adresse qui est maintenant occupé par un autre objet parce que l'occupant précédent a disparu de façon inattendue. Depuis que l'espace d'adressage pourrait être occupé par quoi que ce soit, vous venez tout juste de se demander une chose NSCFString auquel il ne répond pas.

Si vous mettez en pause le droit du débogueur après avoir créé le tableau de température, qu'est-ce que vous voyez affecté à température? Je devine que quelque chose ne va pas tout à fait raison avec tout ce que le rendement -keysArray. Vous pouvez double-vérifier la façon dont la mémoire est gérée dans tout ce qui est censé revenir. Par le nom, je suppose que votre délégué de l'application a un tableau appelé « keysArray » comme une variable d'instance. Peut-être que ce ne sont pas correctement conservés lors de sa création ou attribué?

Autres conseils

J'avais donc celui-ci. Je l'ai fait quelque chose de stupide. J'Assigne la UITextView à une chaîne au lieu de la propriété de texte. à-dire:

myObj.txtbxThing = [NSString stringWithFormat:@"%@", stuffString];

au lieu de:

myObj.txtbxThing.text = [NSString stringWithFormat:@"%@", stuffString];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top