Comment modifier la valeur NSSsortingng lors du débogage dans XCode?

Lorsque je suis arrêté à un sharepoint rupture dans XCode, je peux voir la valeur des variables NSSsortingng. Comment puis-je les changer? Je peux changer les variables int ou doubles, mais pas NSSsortingng.

Vous pouvez le faire dans la console de débogage. Disons que vous avez NSSsortingng* myVar . Dans la console, après (gdb) , tapez set myVar = @"My new ssortingng" . Si vous utilisez (lldb) , utilisez l’expression équivalente expr myVar = @"My new ssortingng" place.

Cela peut ne pas apparaître correctement dans le panneau des variables, mais vous pouvez vérifier la valeur en entrant po myVar dans la console. Votre code devrait prendre la nouvelle valeur.

Pour plus d’informations sur l’utilisation de expr , consultez ce post StackOverflow.

Vous pouvez, mais vous devez appeler le code à partir de l’invite de commande du débogueur. Par exemple, disons que vous avez un point d’arrêt déclenché juste après cette ligne:

 NSSsortingng *mySsortingng = @"My current ssortingng"; 

Puis à l’invite (gdb) tapez:

 call mySsortingng = @"My new ssortingng" 

Vous pouvez po mySsortingng avant de changer la chaîne et après l’avoir modifiée pour vérifier qu’elle a changé.

Autre exemple: Supposons que vous vouliez changer le titre d’un contrôleur de vue. Vous pouvez utiliser le setter. * Remarque: la notation par points n’est pas prise en charge sur la ligne de commande du débogueur. Par exemple, laissez la vue se charger puis définissez un point d’arrêt quelque part pendant la durée de vie de votre contrôleur de vue. Alors faites ceci:

 call (id)[self setTitle:@"New Title"] 

Continuez à exécuter le programme et vous devriez voir la mise à jour du titre de votre contrôleur de vue.

Pour NSError, j’utilise ceci:

 (lldb) expression aTempError = (NSError*)[[NSError alloc] initWithDomain:@"MANO" code:1 userInfo:nil] 

( https://stackoverflow.com/users/1202867/n8tr ) Le commentaire de n8tr ci-dessus montre comment procéder. Vous devez juste précéder votre affectation avec “po” comme ceci: po mySsortingng = @ “my_new_ssortingng” et po self.title = @ “Nouveau titre”.