Swift中使用NSLog的问题

                       

在Swift中如果想要以如下方式执行NSLog,则编译器必定抱怨:

class Foo {}NSLog("%@",Foo())
   
   
  • 1
  • 2

因为Foo是原生Swift类不是继承自NSObject,而NSLog需要其Description方法,所以我们必须使Foo派生自NSObject,然后重载Description方法:

class Foo:NSObject {    override var description: String {return "大熊猫侯佩"}}
   
   
  • 1
  • 2
  • 3

NSLog也支持字符串内插显示,这时你可以不从NSObject中派生,你只要遵守CustomDebugStringConvertible协议即可:

class Tom:CustomDebugStringConvertible{    var debugDescription: String {return "勒布朗-詹姆斯"}}NSLog("\(Tom())")
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

猜你喜欢

转载自blog.csdn.net/qq_43678568/article/details/86651865