使用Swift的Awesome Extension的更聪明的print()方法

尊敬的所有iOS开发者和读者,

我的这篇文章将尝试向您介绍Swift语言在扩展方面的功能。

对于新手,

扩展为现有的类,结构,枚举或协议类型添加了新功能。 苹果

尽管在Objective-C中也可以使用扩展/类别。 但是Swift在这方面已经赋予了更多权力。 因为在Swift中,我们也可以创建原始数据类型的扩展,例如Int,Float Double。

所以我在说什么很棒的扩展。

我们一直在使用NSLogPrint来打印变量的值以进行调试。

print("Trying to print \(someVar)")

另外,我们可以从Xcode控制台使用po命令来查看变量的值。 我们也可以将pfr v用于相同的目的,请阅读更多。

丑事:

我发现丑陋的是在变量前写了NSLog("print( ,在变量后写了") 。这有点使我的Raftaar在编写代码时遇到了麻烦

因此,如果我们只将po()放在变量后,那会不会更聪明 。 喜欢

someVar.po() ,它将打印在控制台上,

代替

NSLog("%@",someVar) or print("Trying to print \(somevar)")

那就是我们今天要做的。

好吧,这里的主要目标是能够在任何类型的变量上调用po()

当我尝试创建扩展时,我正在考虑使用AnyObject创建on。 但是幸运的是我们无法在AnyObject上创建扩展。

经过一番研究后,我意识到所有非原始类型iOS框架的基类都是NSObject

所以这是价值十亿美元的扩展extension

 扩展NSObject 
{
func po()
{
打印(个体经营)
}
}

现在,只需在StringArrayDictionary甚至UIView对象上调用po()

限制po()不能在AnyObject类型的对象上AnyObject 。 如果有任何读者可以在AnyObject上创建扩展,请创建并通知我和社区。

同样在IntFloatDouble等基本类型上,我们不能调用po()因为它们的基类不是NSObject

因此,解决方案只是Type的另一扩展。

 扩展Int 
{
func po()
{
打印(个体经营)
}
}

对于FloatDouble只需替换类型名称即可。

因此,您可以按以下方式实时使用它,

  “试图打印” .po()//打印,试图打印 
  var someVal = 1234 
  “ the val = \(someVal)”。po()// val = 1234 
  var aDict = .. 
  aDict.po()//将输出字典的内容 
  var aView = ... 
  aView.po()//将打印UIView的描述及其框架 

如您所知,

想象力是唯一的极限。

今天就这些。 尝试以任何可能的方式使用扩展名,不要忘了❤️并发表评论并分享您的想法。

下次,我将在这里与您联系并提供其他有趣的信息。 到那时,请喜欢这篇文章,并尝试与您的同事分享最新信息。

您可以通过ansarimawais@gmail.com与我联系。

访问我的网站以查看到目前为止我已创建的应用程序http://www.linklyapps.in/