IOS开发培训SWIFT学习技巧.pdfVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
相对于 , 是一种编译代码时速度更快、安全性与可靠性更高、同时具有 Objective-C Swift 可预测性的语言。下面iOS 开发培训列出了在实践中使用这种新语言时,所获取一些Swift 使用技巧。这些技巧有助于让开发者编写出更干净的代码,并能帮助更熟悉Objective-C 的程序员适应Swift 编程,同时适用于在Swift 上具有各种背景经历的人,请继续往下看。 iOS 开发培训这篇的章节顺序是按照使用者对Swift 的熟悉程度来排列的。第一部分是针对 不太了解Swift 的人,第二部分是针对初级入门者,而最后一部分是对于已在使用Swift 的 人。 你应当了解,但有可能不知道的Swift 技巧 提高常数的可读性 在Swift 中使用struct 的简洁办法,就是在应用中制作一个适用所有常数的文件。由于Swift 允许我们嵌用下面的结构,这种办法非常有用: import Foundation struct Constants { struct FoursquareApi { static let BaseUrl /v2/ } struct TwitterApi { static let BaseUrl /1.1/ } struct Configuration { static let UseWorkaround true } } 嵌套让我们可以为常数生成一个命名空间 ( )。例如:我们可以使用 namespace Constants.FoursquareApi.BaseUrl来访问Foursquare 的BaseUrl 常数,这样会使得数 据可读性更高,并为相关的常数提供一系列封装。 为了提高性能,要避免NSObject 与@objc Swift 允许我们将分类进行扩展,从NSObject 到获取对象的Objective-Cruntime 系统功 能。还允许我们用@objc 来注释Swift 方法,以便在Objective-C runtime 中使用。 支持Objective-C runtime,代表着系统不再通过通过静态或vtable 分配,而是动态分配 来调用方法。结果就是:在调用支持Objective-C 运行的方法时,性能损失会高达四倍。 在实际应用中,这种情况对性能的影响也许微不足道,不过这样一来,我们就知道通过Swift 执行方法调用要比使用Objective-C 快四倍。 在Swift 中使用方法调配 (Method Swizzling) 方法调配是替换一个已存在的方法实现。如果对此不熟悉,可以阅读这篇文章。Swift 优化 后,不再像Objective-C 中那样,在runtime 寻找方法的位置,而是直接调用内存地址。 因此默认情况下,在Swift 类中调配无法起效,除非:  用动态关键字禁用这种优化。这是最佳选择,如果数据库完全以Swift 构建的话, 这种选择也是最合理的方式。  扩展NSObject。如果单纯为了方法调配的话,不要用这种方式(而要采用动态的)。 需要了解:在将NSObject 作为基础类的已存在类中,方法调配是有效的,不过最好使 用动态选择的方法。  在要调配的方法中使用@objc 注释。如果我们想要调配的方法同时也需要使用 Objective-C 的代码,那么这种方法是最合适的。 引用 更新:根据要求,我们增加了一个完全使用Swift 的调用样例。在这个样例中仍需要 Objective-C runtime,不过类并非继承自NSObject,方法也未标记成@objc。 import UIKit class AwesomeClass { dynamic func originalFunction () - String { return originalFunction } dynamic func swizzledFunction () - String { return swizzledFunction } } let awesomeObject AwesomeClass() print (awesomeObjec

文档评论(0)

celkhn5460 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档