Swift中使用NSLog的问题
发布时间:2020-12-14 06:52:43 所属栏目:百科 来源:网络整理
导读:在Swift中如果想要以如下方式执行NSLog,则编译器必定抱怨: class Foo {} NSLog ( "%@" , Foo ()) 因为Foo是原生Swift类不是继承自NSObject,而NSLog需要其Description方法,所以我们必须使Foo派生自NSObject,然后重载Description方法: class Foo : NSObject {
在Swift中如果想要以如下方式执行NSLog,则编译器必定抱怨: class Foo {}
NSLog("%@",Foo())
因为Foo是原生Swift类不是继承自NSObject,而NSLog需要其Description方法,所以我们必须使Foo派生自NSObject,然后重载Description方法: class Foo:NSObject {
override var description: String {return "大熊猫侯佩"}
}
NSLog也支持字符串内插显示,这时你可以不从NSObject中派生,你只要遵守CustomDebugStringConvertible协议即可: class Tom:CustomDebugStringConvertible{
var debugDescription: String {return "勒布朗-詹姆斯"}
}
NSLog("(Tom())")
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |