热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在XCode中自动实现Swift协议方法-AutoimplementSwiftprotocolmethodsinXCode

Ijuststartedwiththeswiftlanguageandcomingfromjavaitlooksgreatsofar.ButImreallymi

I just started with the swift language and coming from java it looks great so far. But I'm really missing something:

我刚开始使用swift语言,它来自java,到目前为止看起来很棒。但我真的错过了一些东西:

Eclipse had this great feature that when I added "implements XYZ" it provided me a function to automatically implement the necessary function stubs. This is a huge timesaver.

Eclipse有一个很棒的特性,当我添加“实现XYZ”时,它为我提供了一个函数来自动实现必要的函数存根。这是一个很大的节省时间的方法。

XCode doesn't seem to have this feature, or am I missing something?

XCode似乎没有这个功能,还是我漏掉了什么?

I found the accessorize plugin, but this seems only to work with Objective C..

我找到了accessorize插件,但这似乎只适用于Objective C。

Is there a solution?

有解决方案吗?

PS. I'm using XCode 6.1.1

我用的是XCode 6.1.1

3 个解决方案

#1


14  

Xcode 9

Xcode 9 now supports conforming to protocol methods via a "fix it". It will automatically fill the missing methods for you. This was announced in WWDC 2017.

Xcode 9现在通过“修复它”支持遵循协议方法。它将自动为您填充缺失的方法。这是在2017年WWDC上宣布的。

enter image description here

Update: This doesn't seem to work for protocols defined by you, unfortunately.

更新:不幸的是,这似乎不适用于您定义的协议。

#2


22  

NB: This answer is true for Xcode before version 9; in Version 9 Apple added the ability to automatically fix up missing protocol methods; see Guy Daher's answer.

NB:这个答案在Xcode版本9之前是正确的;在版本9中,苹果增加了自动修复丢失的协议方法的能力;看到人哒回答。

I just created an iOS project, and headed into my UIViewController.swift file. There I declared that it implemented UITableViewDelegate:

我刚创建了一个iOS项目,并进入了UIViewController。快速文件。在那里我声明它实现了UITableViewDelegate:

class ViewController: UIViewController, UITableViewDelegate {

Now when I go into the body of the class, and start typing "tab...", I see the appropriate autocompletions:

现在当我进入课程主体,开始输入"tab…",我看到适当的自动完成:

Xcode autocompletions

Hitting Enter then inserts the function stub, with the cursor placed ready to code.

点击Enter,然后插入函数存根,将光标放在准备编码的地方。

That's just the way Xcode autocompletes protocols (or inherited class methods.) If you want to do all of them at once, I don't think it's possible, sadly. But you can always Cmd-click or Option-Cmd-click (which uses a secondary editor window) on the protocol name to jump to its definition, which is basically a list of all its methods you can copy and paste into your code. You'd need to tidy up a little from there, but not much.

这就是Xcode自动完成协议(或继承的类方法)的方式。如果你想同时做所有的事情,我认为这是不可能的。但是,您总是可以在协议名称上使用Cmd-click或opt -Cmd-click(它使用一个辅助编辑器窗口)来跳转到它的定义,它基本上是一个所有您可以复制和粘贴到您的代码中的方法的列表。你需要从那里整理一下,但不是很多。

#3


1  

Xcode 9, takes care of implementation of mandatory methods of Swift Datasource & Delegates.

Xcode 9,负责实现Swift数据源和委托的强制方法。

Look at these snapshots, with example of UICollectionViewDataSource:

看看这些快照,以UICollectionViewDataSource为例:

Indicating warning to implement protocol methods:

指示警告,以执行协议方法:

enter image description here

By clicking on 'Fix' button, it has added all mandatory methods:

通过点击“Fix”按钮,它添加了所有的强制方法:

enter image description here


推荐阅读
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Week04面向对象设计与继承学习总结及作业要求
    本文总结了Week04面向对象设计与继承的重要知识点,包括对象、类、封装性、静态属性、静态方法、重载、继承和多态等。同时,还介绍了私有构造函数在类外部无法被调用、static不能访问非静态属性以及该类实例可以共享类里的static属性等内容。此外,还提到了作业要求,包括讲述一个在网上商城购物或在班级博客进行学习的故事,并使用Markdown的加粗标记和语句块标记标注关键名词和动词。最后,还提到了参考资料中关于UML类图如何绘制的范例。 ... [详细]
  • 初探PLC 的ST 语言转换成C++ 的方法
    自动控制软件绕不开ST(StructureText)语言。它是IEC61131-3标准中唯一的一个高级语言。目前,大多数PLC产品支持ST ... [详细]
  • Maven构建Hadoop,
    Maven构建Hadoop工程阅读目录序Maven安装构建示例下载系列索引 序  上一篇,我们编写了第一个MapReduce,并且成功的运行了Job,Hadoop1.x是通过ant ... [详细]
  • 最近学习反射机制的时候Properties.load(读取本地文件流的时候怎么也找不到加载文件后面发现IDEA的默认根目录是在它的Project工程下IDEA的文件目录和Ec ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • Java程序设计第4周学习总结及注释应用的开发笔记
    本文由编程笔记#小编为大家整理,主要介绍了201521123087《Java程序设计》第4周学习总结相关的知识,包括注释的应用和使用类的注释与方法的注释进行注释的方法,并在Eclipse中查看。摘要内容大约为150字,提供了一定的参考价值。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • vue使用
    关键词: ... [详细]
author-avatar
胡宸宸
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有