作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
由于 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/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!