J'ai vécu la même erreur du compilateur:
internal compiler error: tree check: expected tree that contains 'decl with visibility' structure, have 'const_decl' in c_common_truthvalue_conversion, at c-common.c:2836
En utilisant Xcode 4.1 avec GHUnitIOS-0.4.32 (et GHUnitIOS-0.4.31) lors de la construction pour les appareils iOS. Notez qu'il n'y a pas de problème lors de la construction du simulateur.
Les erreurs de complément impliquent des appels à GHAssertNotEqualObjects
et GHAssertNotEquals
.
Le modèle de code que j'utilisais quand j'ai reçu l'erreur du compilateur a des éléments suivants:
- (void) test_isEqual {
SomeObject *foo = [[SomeObject alloc] initWithValue: 1];
SomeObject *bar = [[SomeObject alloc] initWithValue: 2];
GHAssertNotEquals(bar, foo, @"Different Objects, different values - different pointers");
GHAssertNotEqualObjects(bar, foo, @"Different Objects, different values - different pointers (calls isEqual)");
}
j'ai pu compiler le code avec la modification suivante:
- (void) test_isEqual {
NSString *comment;
SomeObject *foo = [[SomeObject alloc] initWithValue: 1];
SomeObject *bar = [[SomeObject alloc] initWithValue: 2];
comment = @"Different Objects, different values - different pointers";
GHAssertNotEquals(bar, foo, comment);
comment = @"Different Objects, different values - different pointers (calls isEqual)";
GHAssertNotEqualObjects(bar, foo, comment);
}
Notez que appelle GHAssertEqualObjects
, , GHAssertFalse
, GHAssertNil
, GHAssertNotNil
et GHAssertTrue
en utilisant un const NSString, c'est-à-dire @ "une chaîne", a fait pas provoquer une erreur de compilation.
En regardant dans #define GHAssertNotEquals(a1, a2, description, ...)
et #define GHAssertEqualObjects(a1, a2, description, ...)
et leur utilisation de description
, les deux appellent GHComposeString(description, ##__VA_ARGS__)
, tout comme les autres macros qui fonctionnent.
Avant que quelqu'un ne le suggère j'ai déjà réalisé le produit -> propre. – ShogoDodo
Comme je ne peux pas répondre à ma propre question pour encore 6 heures, voici la réponse que j'ai tenté de soumettre: - – ShogoDodo
Je pense avoir répondu au problème. Au départ, c'était une erreur d'écolier en mon nom. Je n'aurais pas dû tester null lorsque la condition d'erreur renvoyée serait nulle. Sons facile-peasy jusqu'ici. J'ai corrigé le code et compilé à nouveau. Même erreur mais un scénario très différent, effectuant un plus grand que la comparaison entre une valeur off_t et zéro (cast à off_t). Pour couper court à une histoire courte, je soupçonne que le problème est lié à 32 v 64 bits (respectivement entre l'iPad et le simulateur). – ShogoDodo