NS
和
UI
前缀,各个系统框架的前缀
SK
(StoreKit),
CG
(CoreGraphic) 等。Objective-C 社区的大部分开发者也遵守了这个约定,一般都会将自己名字缩写作为前缀,把类库命名为
AFNetworking
或者
MBProgressHUD
这样。这种做法可以解决部分问题,至少我们在直接引用不同人的库时冲突的概率大大降低了,但是前缀并不意味着不会冲突,有时候我们确实还是会遇到即使使用前缀也仍然相同的情况。另外一种情况是可能你想使用的两个不同的库,分别在它们里面引用了另一个相同的很流行的第三方库,而又没有更改名字。在你分别使用这两个库中的一个时是没有问题的,但是一旦你将这两个库同时加到你的项目中的话,这个大家共用的第三方库就会和自己发生冲突了。
在 Swift 中,由于可以使用命名空间了,即使是名字相同的类型,只要是来自不同的命名空间的话,都是可以和平共处的。swift中的命名空间的使用不是一个项目,而是需要跨项目,在一个项目中,254)">都是一个命名空间,254)">在同一个命名空间下,254)">所有全局变量或者函数共享,254)">不需要import,从swift开始,官方更多的建议大家使用pod来管理第三方框架(不然拿进来一个框架,整个项目哪哪都能使)