2010-09-27 3 views
4

Je reçois l'erreur "Echec de l'assertion: (cls), function getName, fichier /SourceCache/objc4_Sim/objc4-427.1.1/runtime/objc-runtime-new.m, ligne 3939. " chaque fois que je cours le code suivant.L'assertion a échoué dans l'objectif C

NSLog(@"Hello: %@\n", [NSMutableString stringWithString:@"Whatever"]); 

Il se aussi un millier de l'erreur ci-dessus chaque fois que je lance ceci:

NSMutableString* urlCopy = [[NSMutableString alloc] initWithString:url]; 

et la souris sur la variable urlCopy dans le débogueur. Est-ce ma version de XCode? Que diable se passe-t-il? Je cours 3.2.4 64 bits. Je suis à une perte complète pour expliquer ceci, et je ne peux pas sembler créer n'importe quelle sorte de chaîne sans ce problème. J'ai écrit des programmes où c'est la seule ligne dans le programme, et il crée toujours cette erreur. S'il vous plaît aider!

+0

Avoir la même question, le dernier Xcode. – Morrowless

+0

duplication possible de [Obtention d'un message de débogueur étrange: Échec de l'assertion: (cls), fonction getName: qu'est-ce que c'est?] (Http://stackoverflow.com/questions/3703447/getting-strange-debugger-message-assertion-failed- cls-function-getname-what) – outis

Répondre

2

J'utilise aussi 3.2.4 64 bits, et votre code (l'appel NSLog) fonctionne bien pour moi. Si cela se produit avec chaque projet, il semble que quelque chose ne va pas dans votre environnement. Avez-vous essayé de réinstaller Xcode?

+0

Très bien, je vais essayer ça, et voir comment ça se passe. Ça doit être quelque chose dans mon environnement. – Schmelter

+2

Cela a été accepté - cela signifie-t-il que le problème s'est dissipé lorsque vous avez réinstallé XCode? (N'attendant pas avec impatience celui-là, donc aimerait une sorte de confirmation avant que je le fais) – Kalle

0

La fonction en question:

/*********************************************************************** 
* getName 
* fixme 
* Locking: runtimeLock must be held by the caller 
**********************************************************************/ 
static const char * 
getName(struct class_t *cls) 
{ 
    // fixme hack rwlock_assert_writing(&runtimeLock); 
    assert(cls); 

    if (isRealized(cls)) { 
     return cls->data->ro->name; 
    } else { 
     return ((const struct class_ro_t *)cls->data)->name; 
    } 
} 

... si quelqu'un peut faire quelque chose hors de lui :)

+0

Oui, il semble que le * cls étant passé est NULL. Ce qui est ... étrange. Pour dire le moins. – Schmelter

Questions connexes