ios – Objective-C:从可空指针’NSURL * _Nullable’到非可空指针类型’NSURL * _Nonnull’

ios – Objective-C:从可空指针’NSURL * _Nullable’到非可空指针类型’NSURL * _Nonnull’,第1张

概述我正在尝试将NSURL * _Nullable转换为不可为空.任何人都知道我怎么能这样做? 这是一些背景: 我正在尝试使用ios-oauthconsumer,我正在尝试初始化一些对象: self.requestTokenRequest = [[OAMutableURLRequest alloc] initWithURL:_requestTokenUrl 我正在尝试将NSURL * _Nullable转换为不可为空.任何人都知道我怎么能这样做?

这是一些背景:

我正在尝试使用ios-oauthconsumer,我正在尝试初始化一些对象:

self.requestTokenRequest = [[OAMutableURLRequest alloc] initWithURL:_requestTokenUrl                                                               consumer:_consumer                                                                  token:nil                                                                  realm:nil                                                      signatureProvIDer:nil                                                                  nonce:nil                                                              timestamp:nil];

它们已由此init初始化:

- (ID)initWithURL:(NSURL *)aUrl         consumer:(OAConsumer *)aConsumer            token:(OAToken *)aToken            realm:(Nsstring *)aRealmsignatureProvIDer:(ID<OASignatureProvIDing>)aProvIDer            nonce:(Nsstring *)aNonce        timestamp:(Nsstring *)aTimestamp {    if ((self = [self initWithURL:aUrl consumer:aConsumer token:aToken realm:aRealm signatureProvIDer:aProvIDer])) {      nonce = [aNonce copy];      timestamp = [aTimestamp copy];    }    return self;}

如果我说我得到这个:

我试着使用那个对象.我收到这个警告:


如果你们中的任何人都知道如何将_Nullable转换为非Nullable对象,我将非常感激.

解决方法 这非常简单=您需要做的就是在方法调用中使用_requestTokenUrl之前将其分配给变量.这应该足够了:

NSURL *url = _requestTokenUrl;self.requestTokenRequest = [[OAMutableURLRequest alloc] initWithURL:url                                                           consumer:_consumer                                                              token:nil                                                              realm:nil                                                  signatureProvIDer:nil                                                              nonce:nil                                                          timestamp:nil];

现在,请记住,这只会使警告无声.由于_requestTokenUrl是可空的并且该方法需要一个非空对象,因此您应该检查_requestTokenUrl是否实际上是非零的.所以更合适的版本看起来像这样:

NSURL *url = _requestTokenUrl;if (url != nil) {    self.requestTokenRequest = [[OAMutableURLRequest alloc] initWithURL:url                                                               consumer:_consumer                                                                  token:nil                                                                  realm:nil                                                      signatureProvIDer:nil                                                                  nonce:nil                                                              timestamp:nil];} else {    // `_requestTokenUrl` was nil,act accordingly}

但是仍然需要对变量进行分配.

总结

以上是内存溢出为你收集整理的ios – Objective-C:从可空指针’NSURL * _Nullable’到非可空指针类型’NSURL * _Nonnull’全部内容,希望文章能够帮你解决ios – Objective-C:从可空指针’NSURL * _Nullable’到非可空指针类型’NSURL * _Nonnull’所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存