swift不同地方 命名空间module iOS
来源:互联网 发布:fbreader源码画线功能 编辑:程序博客网 时间:2024/06/05 17:28
swift的改进最大的地方之一,就是拥有了Objective-C一直令人诟病的地方没用命名空间,就是所有代码和静态库最终都会编译到同一个域和二进制中. 因为这种机制,导致在加入静态库时导致冲突和失败,为了避免这种情况. Objective-C的做法是一般加上前缀,比如Apple的UI和NS前缀,各个系统框架加上SK,CG等. 虽然这种解决办法能大大降低冲突,但是加上前缀并不能完全避免冲突. 另一种情况就是你想使用两个不同的库,他们分别引用了同一个很流行的库,大家公用的第三方库就会产生冲突.
终于说到swift, swift中由于可以使用命名空间,即时名字相同的类型,只要是来自不同的命名空间,都可以和平共处. 跟C#的显式指定命名空间不同,swift的命名空间基于module而不是显式指明,二每个module代表了swift中的一个命名空间,也就是说,同一个target里的类型名称还是不能相同. 在开发中,默认都是添加到主target,所以都处于同一个命名空间,并不能使用相同的名字. 我们需要通过创建cocoa(Touch)Framework方法新建一个module,这样就可以在两个不同的target添加相同的名称类型.
以下两个类分别在两个不同的文件
使用时,出现冲突,只需在类名前加上moduole的名称(也就是target名称):
在同一个target中,也有另一个解决方法:
将名字重复的类型定义到不同的struct中,以此避免冲突.
阅读全文
0 0
- swift不同地方 命名空间module iOS
- swift 命名空间
- swift 修改命名空间
- Swift命名空间
- swift 命名空间
- IOS学习笔记05_2-Swift-命名空间
- 浅析Swift中的命名空间
- swift中获取命名空间
- 不同命名空间的相同变量
- 模块(Module)的用途1 命名空间(Namespace)
- 关于javascript模块和命名空间(Module and namespace)
- Swift获取命名空间(namespace),动态加载类
- Swift命名空间动态获取并加载类
- 关于模板特化在不同的命名空间的问题
- c++不同的命名空间访问的问题
- C# 不同命名空间的相同类,反射赋值
- VS环境下如何调用不同命名空间的属性
- iOS: 学习笔记, Swift名字空间
- java锁机制
- Oauth协议
- C++对C的升级
- Linux操作系统下配置 ArcGIS Server 连接SDE空间库
- Unity简易版的软件升级
- swift不同地方 命名空间module iOS
- c++模板参数自动推导
- Jfinal(一)--------入门HelloWorld
- html5地理位置定位
- Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: forbidden (403)"原因
- js 实现页面的复制功能 clipboard.js
- Spring Boot+SpringMVC使用ueditor(jsp版)
- java 回文数
- EffectiveC++学习笔记-条款12