ios – 如何用可空写入完成块?

ios – 如何用可空写入完成块?,第1张

概述当我用nil调用此方法时,应用程序崩溃,但我想知道如何使用nullable编写它. CRASH [KPTaxnoteApiSaveHandler saveEntryWithUuid:uuid completion:nil]; 好 [KPTaxnoteApiSaveHandler saveEntryWithUuid:uuid completion:^(NSError *error) {}]; 这是代 当我用nil调用此方法时,应用程序崩溃,但我想知道如何使用nullable编写它.

CRASH

[KPTaxnoteAPISaveHandler saveEntryWithUuID:uuID completion:nil];

[KPTaxnoteAPISaveHandler saveEntryWithUuID:uuID completion:^(NSError *error) {}];

这是代码.

+ (voID)saveEntryWithUuID:(Nsstring *)uuID completion:(voID (^ __nullable)(NSError * _Nullable error))completion {    NSLog(@"saveEntryWithUuID");    Entry *entry = [Entry MR_findFirstByAttribute:@"uuID" withValue:uuID];    NSDictionary *params = @{@"entry[uuID]":entry.uuID};    [KPTaxnoteAPISaveHandler postWithUrl:kAPIUrlStringForEntry params:params completion:^(NSError *error) {        if (!error) {            [MagicalRecord saveWithBlock:^(NSManagedobjectContext *localContext) {                Entry *entry    = [Entry MR_findFirstByAttribute:@"uuID" withValue:uuID inContext:localContext];                entry.needSave  = @NO;            }];        }        completion(error);    }];+ (voID)postWithUrl:(Nsstring *)urlStr params:(NSDictionary *)params completion:(nullable voID (^)(NSError *_Nullable error))completion {    AFhttpRequestoperationManager *manager = [AFhttpRequestoperationManager manager];    [manager POST:urlStr parameters:params success:^(AFhttpRequestoperation *operation,ID responSEObject) {        completion(nil);    } failure:^(AFhttpRequestoperation *operation,NSError *error) {        completion(error);    }];
解决方法 坠机发生在哪里?我的第一个猜测是你需要做这样的事情:

if (completion) {    completion(nil); // Or completion(error);}

这将处理完成为零的情况.

总结

以上是内存溢出为你收集整理的ios – 如何用可空写入完成块?全部内容,希望文章能够帮你解决ios – 如何用可空写入完成块?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1077702.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存