gpt4 book ai didi

ios - Swift 1.2 可选外部变量?

转载 作者:搜寻专家 更新时间:2023-10-31 23:03:47 24 4
gpt4 key购买 nike

由于 Swift 无法访问编译变量,我创建了一个指向编译变量的 objective-c 外部变量。

编译变量转换器.h

extern NSString * const NetworkApiBasicAuthUsername;

编译变量转换器.m

// AUTH_USERNAME might not be defined depending on the environment we are pointing to
#if defined(AUTH_USERNAME)
NSString * const NetworkApiBasicAuthUsername = @AUTH_USERNAME;
#else
NSString * const NetworkApiBasicAuthUsername = nil;
#endif

网络管理器.swift

if CSNetworkApiAuthUsername != nil {
// Basic auth is required set them
}

此代码用于 Swift 1.0,但 Swift 1.2 会出现编译错误。二元运算符 '!=' 不能应用于 'String' 和 'nil' 类型的操作数

如何使外部变量成为可选变量,我尝试将外部变量定义为 __nullable 但没有成功

最佳答案

我刚刚做了一些快速测试,我很确定这是一个错误。没有办法强制全局变量(或常量)是可选的。即使它们是用 nil 初始化的。这不可能是正确的。

宏与错误无关。作为解决方法,您可以使用函数而不是常量:

NSString* NetworkApiBasicAuthUsername() {
#if defined(AUTH_USERNAME)
return @AUTH_USERNAME;
#else
return nil;
#endif
}

关于ios - Swift 1.2 可选外部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29612639/

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