Tag: 面向协议

提示:将代码从Swift 3升级到Swift 4?

在转换代码之前执行此操作 提示#1 如果您的viewcontroller符合任何协议,则必须将其与类定义一起声明,以便Xcode可以将协议方法转换为相应的swift版本。 例如,我们可以直接从Storyboard分配UITableView / UICollectionView Delegate和Datasource,通常不在类定义中声明它,而直接编写协议方法,其他委托如UISearchBar,UITextView或UITextField就是这种情况。 只要确保您的ViewController包含声明 例如 MyViewController类:UIViewController,UITableViewDelegate,UITableViewDataSource 为什么要这样做? Xcode可能不会将已经实现的方法定义转换为最新的方法定义,因为它可能会将其视为您的本地函数。 您需要通知Xcode您的ViewController符合协议XYZ,因此Xcode也会更新您的方法定义,或者至少会给您相应的警告或错误 结果呢? 如果您没有在UnitTesting中涵盖所有代码,或者尚未实现UITesting来彻底测试应用程序,则很有可能在进行手动测试时会丢失部分代码。 这可能会导致崩溃或不当行为。 这也将确保Swift的未来版本在进行转换时会自动转换您的委托方法。 更好的方法(如果您仍然不遵循) 始终为协议实现创建类的扩展 例如 扩展MyViewController:UICollectionViewDelegate,UICollectionViewDataSource { func numberOfSections(在collectionView:UICollectionView中)-> Int { 返回1 } func collectionView(_ collectionView:UICollectionView,numberOfItemsInSection部分:Int)-> Int { 返回10 } func collectionView(_ collectionView:UICollectionView,cellForItemAt indexPath:IndexPath)-> UICollectionViewCell { let cell = collectionView.dequeueReusableCell(withReuseIdentifier:“ reuseIdentifier”,用于:indexPath) 返回单元 } func collectionView(_ collectionView:UICollectionView,didSelectItemAt indexPath:IndexPath){ } 提示2 如果您的代码是Swift和Objective-C的混合体,则Swift […]

ViewController tidak boleh tahu ViewController放宽吗?

[Artikel ini akan terus diupdate sesuai dengan apa yang diketahui penulis。 Jika kalian menemukan kesalahan, 随时免费获得菜单!] Di ViewController编程指南,请参见ViewController的使用。 或者至少是ViewController的dia tidak punya pengetahuan tentang apa sebenarnya。 h,迪尼尼·彭拉桑·伯亨蒂。 Tidak ada contoh kode dimana konsep itu harus dijalankan oleh开发人员(程序员)。 Ini tentu membuat saya(pribadi)kesulitan。 苹果(Apple),西班牙菜(Karena Masih新手)面包(Baenamana merealisasikan Hal Tersebut)。 Paragraf yang dibuat dalam bentuk Quote di atas adalah paragraf […]