您的位置:首页 > 移动开发 > Swift

Swift中使用NSLog的问题

2016-07-01 10:42 525 查看
在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())")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: