gpt4 book ai didi

ios - Objective-C:从可空指针 'NSURL * _Nullable' 到不可空指针类型 'NSURL * _Nonnull'

转载 作者:可可西里 更新时间:2023-11-01 17:03:54 27 4
gpt4 key购买 nike

我正在尝试将 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 *)aRealm
signatureProvider:(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;
}

如果我 po 我得到这个:

enter image description here

然后我尝试使用那个对象。我收到此警告:

enter image description here如果你们中有人知道如何将 _Nullable 转换为非 Nullable 对象,我将不胜感激。

最佳答案

这非常简单 = 您需要做的就是将 _requestTokenUrl 分配给一个变量,然后再在方法调用中使用它。这应该足够了:

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

现在请记住,这只会让警告消失。由于您的 _requestTokenUrlnullable 并且该方法需要一个 nonnull 对象,因此您应该检查 _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',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43747929/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com