Erreurs cryptiques (pour moi)
berfis
Membre
Bonjour,
Après avoir téléchargé la dernière version de Xcode (Version 4.6.3 (4H1503)), je me retrouve avec ces erreurs que je n'arrive pas à comprendre (elles n'empêchent pas le programme de fonctionner):
ibtoold(3536,0x10c08c000) malloc: *** auto malloc[3536]: error: GC operation on unregistered thread. Thread registered implicitly. Break on auto_zone_thread_registration_error() to debug.
et
/Applications/Xcode.app/Contents/Developer/usr/bin/ibtool emitted errors but did not return a nonzero exit code to indicate failure
ça semble être lié au fichier(s) xib mais je ne comprends pas l'opération GC alors que je suis en ARC...
Déjà vu ce genre d'erreurs?
Merci.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Donc... Bug Report ou pas?
Cette application me fait des misères: chez moi elle fonctionne sur 10.8 (et même 10.9 mais bon...) et quand je l'installe au boulot sur un Mac 10.8, j'ai la console qui me sort des erreurs Core Data "Controller cannot be nil"... Je suis à la frontière du bug, non? Enfin, elle est même franchie... Je sais, difficile de répondre sans voir le code... <_<
(par contre détaille bien ton BugReport, de sorte qu'ils n'aient plus qu'à ouvrir ton ZIP contenant ton exemple et constatent le problème, mieux c'est détaillé et plus tu leur fournis de quoi reproduire rapidement et plus tu as de chance qu'ils le traitent rapidement... même si la priorité aujourd'hui doit être sur Xcode5 et iOS7 chez eux !)
Xcode 5 ne détecte pas de problème, NDA mise à part...
En effet. Je viens de voir ça.
Bonsoir,
Y a-t-il une bonne raison pour qu'une app qui fonctionne sans problème sur deux Mac chez moi (10.8) me sorte un "Controller cannot be nil" sur un iMac tout récent (sous 10.8) au boulot?
L'erreur apparaà®t sur la console, l'app ne plante pas. Par contre, son fonctionnement ne correspond pas à celui attendu (des objets qui refusent obstinément de se créer)...
Là , je suis paumé.
Si sur tes deux macs où ça marche chez toi tu avais déjà compilé avec ces fichiers et n'a jamais fait de Clean depuis, ça peut expliquer pourquoi ça marche sur ces macs (alors que ça ne devrait pas), et pas sur l'iMac tout récent. Si tu fais un "Clean" avant de compiler sur les deux Macs de chez toi qui marchent, est-ce que ça fonctionne toujours sans problème ou est-ce que du coup après ce Clean tu constates les mêmes problèmes que tu as vu sur le Mac du boulot ?
Si oui cela ne vient donc pas de la machine mais de problèmes dans ton code (et si ça marchait jusqu'à présent sur tes macs chez toi c'était donc un coup de bol si c'est ça)
Merci pour la réponse.
J'ai deux xib et ils sont inclus. Quant aux clean, j'en fais sans cesse car mes deux macs sont synchronisés avec un truc qui s'appelle Cubby et qui ne met pas à jour (en passant) les modèles Core Data...
Mon premier réflexe est toujours "l'erreur est dans mon code", à tel point que depuis des années je ne dis plus "ça marche" mais "ça semble marcher". Cela dit, je suis face à un bug particulièrement vicieux: Quand je dis que chez moi l'app semble fonctionner, il s'agit d'une version Release testée hors-Xcode (des fois que l'IDE "rattraperait le coup"). Les postes au travail vont d'un iMac ancien reboosté à 4Mo jusqu'à l'iMac de 2013 à 8Mo. Chez moi j'ai un Mac Pro 2008 et le dernier MacBook. Ce n'est pas un problème de génération.
Je vais donc transporter Xcode au boulot, et faire des tests in situ. Mais franchement, "Controller cannot be nil"... je préférerais une bonne plantée à cette "erreur silencieuse"... Ou alors je poste mon projet ici et de bonnes âmes le testent chez elles...
C'est vachement agaçant, surtout que pas mal de collègues attendent cette application: je revis le malaise de la "séance avec les clients" d'il y a pas mal d'années, quand la boà®te où je bossais devait régulièrement démontrer l'avance du produit...
OK, avec la nouvelle version Xcode, j'obtiens finalement cette erreur:
[super newObject] retourne NIL...
Il s'agit d'une méthode d'une classe dérivée d'un NSArrayController gérant des NSManagedObjects (un cas trivial, donc). Dans Xcode 4.6, je n'avais pas d'erreur, dans Xcode 5.0 ça plante.
Qu'est-ce que j'ai loupé? Surcharger newObject est une idée vue chez Hillegass, elle a toujours fonctionné jusqu'à présent.
Es tu certain que super n'est pas lui déjà égal à nil ?
Déjà avec un NSArrayController il vaudrait pas mieux utiliser -(void)add:(id)sender ?
Vérifie aussi que automaticalyPreparesContent retourne bien YES.
Sinon poste ton projet on y regardera
C'est agaçant: même version Xcode, même version MacOS... deux comportements.
laudema, de retour sur ma machine, j'obtiens:
Comportement attendu. Le DeskController existe, le NSArrayController (superclasse) est bien là , la création de l'objet est notifiée par KVO, et surtout l'objet retourné est conforme: un NSManagedObject dont les valeurs par défaut sont celles définies dans le model Core Data.
Je nage dans le brouillard...
@pyroh
- Je pourrais surcharger add, mais en dernier recours il va appeler newObject.
- Le contrôleur est bien en "Prepare Contents" (et pas Lazy Fetching).
Je commence à me demander si ce n'est pas au niveau d'une version de framework que quelque chose aurait changé. Peut-être ont-ils modifié newObject... Je n'ai rien trouvé dans la doc.
Poste ton code quelque part qu'on teste alors c'est le plus simple
Un échec en amont,au niveau de la création du fichier CoreData par exemple ?
Je pense qu'il y aurait un log, mais bon..
Un embryon de piste? Au boulot, nous avons un serveur qui dessert une centaine de postes. Si je place mon App dans le dossier Applications de mon utilisateur, elle ne se lance pas. Si je la mets sur le bureau, elle se lance... et fonctionne correctement.
Je me demande s'il ne s'agirait pas d'un problème de permissions: l'app ne pourrait pas créer le fichier préférences, ou un document scratch de Core Data ou autre chose encore --- si oui, comment régler ça?
Les documents de l'application sont enregistrés là où l'utilisateur décide de les mettre: Longue vie au monde libre de MacOS!
Le fichier Preferences est logé à l'emplacement correct ( home/Library/Preferences/com.myCompany.myApp).
L'application ne crée aucun autre fichier de manière explicite.
Voyez ce que me sort la console
Job failed to exec(3) for weird reason: 13
Alors là , on se rapproche carrément d'un message Windows... "Weird"... ça ressemble à un gag. Déjà rencontré ça?
J'ai d'abord pensé qu'il s'agissait d'un problème de permissions avec Core Data, mais j'ai installé une autre appli également CD qui fonctionne sans problème. "Contre ce genre de bugs, les dieux eux-mêmes luttent en vain".