PHP-Editor Xigua stellt Ihnen heute ein Tool namens „gomobile“ vor, das eine bequeme Möglichkeit bietet, Fehlerrückgabewerte in der iOS-Entwicklung zu verarbeiten. Im Gegensatz zur herkömmlichen Methode kann gomobile sowohl NSError-Objekte als auch boolesche Werte zurückgeben, sodass Entwickler Fehlersituationen flexibler handhaben können. Dieses Tool kann die Entwicklungseffizienz erheblich verbessern und die Komplexität der Fehlerbehandlung während des Entwicklungsprozesses verringern. Im Folgenden stellen wir die Verwendung und Vorteile von Gomobile im Detail vor und hoffen, für alle hilfreich zu sein.
Bei Verwendung von Gobind als Schnittstellentyp über Gomobile unter iOS gibt die Golang-Funktion error
zurück, was zwei Auswirkungen auf die Klasse in Objective C hat (Beispiele sind wie folgt):
Ich kann ableiten, wie man den nserror-Zeiger verwendet, was der Standardpraxis von Objective C entspricht. Aber welchen Wert sollte ich für boolean zurückgeben? wahr bedeutet Fehler, falsch bedeutet Erfolg? andererseits? Irgendetwas anderes? Ich kann anscheinend nirgendwo eine Dokumentation finden.
Eine Schnittstelle wie diese:
type a interface { dothing(data *datatype) error }
Holen Sie sich die Objective-C-Schnittstelle wie unten gezeigt:
@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
In Objective-C besteht die Standardmethode zum Ausführen einer Operation, die zu einem Fehler führen kann, darin, einen booleschen Wert zurückzugeben, der Erfolg oder Misserfolg angibt, wobei der yes
表示成功,使用 no
表示失败,并接受 nserror **
-Parameter verwendet wird, um bei Bedarf Fehlerdetails bereitzustellen.
Wenden Sie dies auf gomobile
和 gobind
und gobind
an
Für Ihre Go-Schnittstelle:
type a interface { dothing(data *datatype) error }
gomobile
generiert eine Objective-C-Schnittstelle wie (wie Sie erwähnt haben):
@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
In diesem Modus folgt der gleichen Konvention wie die Objective-C-Methoden von Apple, die darin besteht, einen booleschen Wert zurückzugeben, der den Erfolg des Vorgangs angibt, und den optionalen nserror
zu verwenden, um aufgetretene Fehler detailliert darzustellen. 🎜Das obige ist der detaillierte Inhalt vongomobile: Der Fehlerrückgabewert unter iOS hat sowohl einen NSError- als auch einen booleschen Rückgabewert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!