问题内容: 我刚刚将xcode更新为6.3.1。问题是自Swift 1.2起我收到了这个奇怪的错误消息。我收到这种错误消息 在此代码上 问题答案: 在调用任何init方法之前,必须初始化所有属性 因此,在调用super.init()之前先进行更改 例外: 可选属性 具有默认值的属性 懒惰的财产
问题内容: 我正在制作一个精灵工具包游戏,并且正在使用plist文件设置每个级别的属性。我的plist文件中的一个属性是一个叫做pattern的字典,它包含n个项目,其中每个项目都是一个块,用手键入x和y位置。该模型对于我正在制作的游戏非常适合,因为快速设置等级非常方便。但是,由于缺乏编码经验,我面临一个无法解决的缺点:某些关卡有多达290个块,因此当该应用尝试读取关卡时,该应用冻结了5秒钟。这对
问题内容: 到目前为止,我只能使用全局函数来实现此目的。我不确定是否有可能,但我希望编写一个通用类的扩展,希望能够实现相同的目的。 以下是它正在使用ReactiveCocoa的SignalProducer类的工作全局函数,但原理对于任何通用类都应相同。 更新: 我已经取得了进步,但仍然没有一个完整的解决方案 给定具有某些通用属性的任何类 我如何编写一个扩展名,该扩展名将过滤所有可选值并使用 Wra
问题内容: 在这个问题的上下文中,我将探讨如何实现一种属性或方法,该属性或方法将遍历集合中 所有 嵌套级别。 直观地,这应该起作用: 但是,我们不允许将值强制转换为具有关联类型的协议类型。 所以我想使Element类型更明确,例如: 但这显然要求过多的类型推断器。 现在,我退后一步,决定停止尝试将所有内容合并为一个扩展: 现在可以 编译了 -是的!-但调度已关闭:不会绑定到第二个递归版本,但总是绑
问题内容: 我想构造一些数组,以便快速搜索。如果我使用这样的东西: 查询: 在对数时间内执行? 如果是,其他类型是否相同:浮点,双精度,字符串。 最后,我需要它与UUID类型配合使用,是否可以使用? 问题答案: Swift的实现是通过哈希表实现的,因此,假设哈希算法良好,查找通常会在O(1)时间内完成。正如@rmaddy所说,这意味着密钥的 类型 主要是无关紧要的-真正重要的是密钥是否具有的良好实
问题内容: 以下初始化当前在调用的行中产生此错误: 无法在属性初始化程序中使用实例成员’getEventCalendar’;属性初始化程序在“自我”可用之前运行。 是否有初始化任何适当的方式与依赖于其他对象类型的值实例变量的(不只是单纯?我已经尝试过将方法从一种方法转换为一种功能,但这也无济于事。 问题答案: 您可以使用仅执行一次的闭包,该闭包捕获的属性并在执行时使用它们(=第一次使用属性)。例如
问题内容: 我想创建一个具有某种类型并且也符合协议的属性,就像我在Objective-C中所做的那样: 我要寻找的是指定可以使用也符合CustomProtocol的UIViewController类型的对象设置属性,以便清楚什么是基类。我知道我可以只使用短类存根来获得相同的结果,即 但这似乎不是最干净的方法。 问题答案: 我想不出一种在Swift中表达这一点的好方法。类型的语法是: 类型→数组类型
问题内容: 我试图使它具有包装变量的属性。 为了符合要求,我需要使用来包装属性。不幸的是,我不能将其应用于计算的属性,因为我使用了这些值。 我该如何运作?我该怎么做才能达到目的? 问题答案: 更新:使用EnclosingSelf下标,可以做到! 奇迹般有效!
问题内容: 我很好奇,无论如何在init方法内部调用一个用于设置类实例属性的方法。本质上,我只是有一个类来对UIView进行子类化,并在init中添加了一些子视图,而其中一些子视图是该类的实例变量。 现在出现了问题,我无法在初始化类的内部属性之前调用super init(在super.init调用时未初始化属性’self.collectionView’),但是在调用之前,我也无法调用自定义方法来初
问题内容: 我有一个Swift类,我想看起来像这样: 但是,Swift不喜欢我要传递给初始化程序的事实。我在这里打破某些模式吗?应该如何完成这样的初始化? 问题答案: 您已经找到了Implicitly Unwrapped Optional 的主要用例。 你需要访问的,之前被初始化。 否则,应该 永远 是零,所以你不应该有外部的检查。 因此,您应该声明。
问题内容: 考虑以下示例。 如果我尝试更改类实例的变量,则编译成功。 但是,如果我尝试更改method 的返回值,则编译会发出尖叫 有人可以解释一下。 问题答案: 这是编译器告诉您的修改无用的方式。 这是发生了什么:当你打电话,一个 副本 的回传给你。该副本是 临时的 。您可以检查其字段,或将其分配给变量(在这种情况下,您将能够重新访问您的修改)。如果编译器允许您对该临时结构进行修改,则将无法访问
问题内容: 我正在看自动布局库中的一些代码。其中,UIView采用了一个协议: 一个空虚的成就是什么? 问题答案: 这些是采用协议的类必须为其提供吸气剂的属性。该协议未指定有关setter的任何内容,因此类可以提供计算的属性,而不是存储的属性。 例如,采用的类可以通过添加来满足具有的要求 或通过添加
问题内容: 我正在尝试使用以下代码声明和初始化属性。 但是,出现以下错误。 有人知道这是怎么回事吗?我应该放弃使用声明内联初始化属性的尝试,而是对init()方法进行初始化吗? 问题答案: 正如@giorashc所说,由于swift的两阶段初始化,self尚未被初始化,因此您不能这样做。 但是我认为您可以创建一个懒惰的初始化:
问题内容: 这是我网址的一部分 用户输入城市名称,例如:我想获取其ID。对于id是。 下面,我发布了我的无效代码。 毕竟,我想将id传递给另一个URL文件并进行解析。我是否需要创建另一个Swift类并以某种方式将其与第一个连接? 问题答案: 构建[city:id]字典可以为您提供解决方案。我基于http://www.codeproject.com/Articles/248883/Objective
问题内容: 我正在Swift中编写一些性能关键的代码。在实现了我能想到的所有优化并在Instruments中对应用程序进行了性能分析之后,我意识到,绝大多数CPU周期都花在了Floats数组上的执行和操作上。所以,只是为了看看会发生什么,我更换的所有实例,并具有良好的老式循环。令我惊讶的是,循环快得多了! 对此感到有些困惑,我决定执行一些粗略的基准测试。在一个测试中,我执行了一些简单的算术,然后返