L'éditeur PHP Xigua vous présente aujourd'hui un outil appelé "gomobile", qui fournit un moyen pratique de gérer les valeurs de retour d'erreur dans le développement iOS. Différent de la méthode traditionnelle, gomobile peut renvoyer à la fois des objets NSError et des valeurs booléennes, permettant aux développeurs de gérer les situations d'erreur avec plus de flexibilité. Cet outil peut considérablement améliorer l'efficacité du développement et réduire la complexité de la gestion des erreurs pendant le processus de développement. Ci-dessous, nous présenterons en détail l’utilisation et les avantages de Gomobile, dans l’espoir d’être utile à tout le monde.
Lors de l'utilisation de gobind comme type d'interface via gomobile sur ios, la fonction golang renvoie error
ce qui aura 2 effets sur la classe en objectif c (les exemples sont les suivants) :
Je peux déduire comment utiliser le pointeur nserror, qui est une pratique standard en Objective C. Mais quelle valeur dois-je renvoyer pour un booléen ? vrai signifie erreur, faux signifie succès ? au contraire? Rien d'autre? Je n'arrive pas à trouver de documentation nulle part.
Une interface comme celle-ci :
type a interface { dothing(data *datatype) error }
Obtenez l'interface Objective C comme indiqué ci-dessous :
@interface PackageA : NSObject <goSeqRefInterface, PackageA> { } @property(strong, readonly) _Nonnull id _ref; - (nonnull instancetype)initWithRef:(_Nonnull id)ref; // Important bit is here: - (BOOL)doThing:(data* _Nullable)DataType error:(NSError* _Nullable* _Nullable)error; @end
En Objective-C, la manière standard d'effectuer une opération pouvant entraîner une erreur est de renvoyer un booléen indiquant le succès ou l'échec, en utilisant le yes
表示成功,使用 no
表示失败,并接受 nserror **
paramètre pour fournir les détails de l'erreur si nécessaire.
Appliquez ceci à gomobile
和 gobind
et gobind
Pour votre interface Go :
type a interface { dothing(data *datatype) error }
gomobile
générera une interface objective-c telle que (comme vous l'avez mentionné) :
@interface packagea : nsobject - (bool)dothingwithdata:(datatype *)data error:(nserror **)error; @end
[ go interface ] [ gomobile binding ] [ obj-c interface ] a (dothing) ---> gobind (error) ---> packagea (dothing:error:)
- (BOOL)doThingWithData:(DataType *)data error:(NSError **)error { BOOL success = your-operation(); // Attempt to do the thing if (!success) { // An error occurred, populate the error if it is not NULL if (error != NULL) { *error = [NSError errorWithDomain:@"YourErrorDomain" code:YourErrorCode userInfo:@{NSLocalizedDescriptionKey: @"An error occurred"}]; } return NO; // Return NO to indicate failure } return YES; // Return YES to indicate success }
gomobile
遵循与 apple 的 objective-c 方法相同的约定,即返回一个指示操作成功的布尔值,并使用可选的 nserror
Dans ce mode, suit la même convention que les méthodes Objective-C d'Apple, qui consiste à renvoyer un booléen indiquant le succès de l'opération et à utiliser le nserror
facultatif pour détailler toutes les erreurs survenues. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!