首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >'NSLog‘不可用: Variadic函数不可用

'NSLog‘不可用: Variadic函数不可用
EN

Stack Overflow用户
提问于 2016-10-03 08:14:59
回答 4查看 18.8K关注 0票数 38

我对斯威夫特不熟悉。当我学习基本知识的时候,我在NSLog上得到了这个错误

这里是我的代码:

代码语言:javascript
复制
import UIKit

class ViewController: UIViewController {
    
     var myString: NSString?

    override func viewDidLoad() {
        super.viewDidLoad()
        myString = "himanth"
        print(myString)
        NSLog("%@" , myString)
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

如果我这样声明myString

代码语言:javascript
复制
var myString: NSString!

使用NSLog是可以的,我也可以看到控制台。

但是像这样声明字符串会导致问题

代码语言:javascript
复制
var myString: NSString?

它反映在NSLog上,并显示错误。

有什么问题吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-10-03 08:27:34

如果您将var myString: NSString?声明为可选的,那么在将它传递给NSLog之前,需要确保它有一个值。

所以你可以这样做然后NSLog("%@" , myString!)。如果myString为0,并且将!放入,程序将崩溃,您将得到

代码语言:javascript
复制
fatal error: unexpectedly found nil while unwrapping an Optional value.

但是,如果它有一个值,程序将继续正常并打印出来。

代码语言:javascript
复制
2016-10-03 10:26:25.077 Swift3.0[65214:1579363] Test

我写了myString = "Test"

@Grimxn提到的另一个例子是合并操作符。

代码语言:javascript
复制
NSLog("%@", myString ?? "<nil>")
票数 25
EN

Stack Overflow用户

发布于 2017-01-15 22:20:37

NSLog()无法打印快速选项。

代码语言:javascript
复制
let optional: String?
NSLog("%@", optional) // 'NSLog' is unavailable: Variadic function is unavailable

let nonOptional: String
NSLog("%@", nonOptional) // Ok!

NSLog("%@", optional ?? "value-if-nil") // Ok!

通过将一个非可选的值传递给NSLog()来修正。

注意:

print() 可以打印快速选项。

票数 18
EN

Stack Overflow用户

发布于 2019-02-13 12:14:57

有同样的问题,接受的答案没有帮助。

代码语言:javascript
复制
func handleSomeResp(_ response: DataResponse<Any>) {
    NSLog("handle error: %@", response)
}

如你所见,选拔赛毫无意义。我想这是因为<Any>,以及任何类型的,对于NSLog不清楚,看类似的问题here:。如果您有解析NSLog泛型的解决方案,请编辑此答案。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39827155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档