Rumah > Artikel > pembangunan bahagian belakang > gomobile: Nilai pulangan ralat pada iOS mempunyai nilai pulangan NSError dan Boolean
Editor PHP Xigua hari ini memperkenalkan anda kepada alat yang dipanggil "gomobile", yang menyediakan cara mudah untuk mengendalikan nilai pulangan ralat dalam pembangunan iOS. Berbeza daripada kaedah tradisional, gomobile boleh mengembalikan kedua-dua objek NSError dan nilai Boolean, membolehkan pembangun mengendalikan situasi ralat dengan lebih fleksibel. Alat ini boleh meningkatkan kecekapan pembangunan dan mengurangkan kerumitan pengendalian ralat semasa proses pembangunan. Di bawah ini kami akan memperkenalkan penggunaan dan kelebihan gomobile secara terperinci, dengan harapan dapat membantu semua orang.
Apabila menggunakan gobind sebagai jenis antara muka melalui gomobile pada ios, fungsi golang kembali error
yang akan memberi 2 kesan pada kelas dalam objektif c (contoh adalah seperti berikut):
Saya boleh menyimpulkan cara menggunakan penunjuk nserror, iaitu amalan Objektif C standard. Tetapi apakah nilai yang harus saya kembalikan untuk boolean? benar bermakna kesilapan, salah bermakna kejayaan? sebaliknya? Apa-apa lagi? Saya tidak dapat mencari dokumentasi di mana-mana.
Antara muka seperti ini:
type a interface { dothing(data *datatype) error }
Dapatkan antara muka objektif c seperti yang ditunjukkan di bawah:
@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
Dalam Objektif-C, cara standard untuk melaksanakan operasi yang mungkin mengakibatkan ralat ialah mengembalikan boolean yang menunjukkan kejayaan atau kegagalan, menggunakan parameter yes
表示成功,使用 no
表示失败,并接受 nserror **
untuk memberikan butiran ralat jika perlu.
Gunakan ini pada gomobile
和 gobind
dan gobind
Untuk antara muka pergi anda:
type a interface { dothing(data *datatype) error }
gomobile
akan menjana antara muka objektif-c seperti (seperti yang anda nyatakan):
@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:)Kaedah objektif-c ialah:
- (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
Dalam mod ini, mengikut konvensyen yang sama seperti kaedah Objektif-C Apple, iaitu mengembalikan boolean yang menunjukkan kejayaan operasi dan menggunakan nserror
pilihan untuk memperincikan sebarang ralat yang berlaku. 🎜Atas ialah kandungan terperinci gomobile: Nilai pulangan ralat pada iOS mempunyai nilai pulangan NSError dan Boolean. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!