小编cou*_*elk的帖子

警告"将架构arm64映射到x86_64"是什么意思?

在将我的框架迁移到Xcode 10 beta(10L176w)之后,我开始收到类似的警告:

将架构arm64映射到x86_64.确保为iOS模拟器平台正确配置了此目标的体系结构和有效体系结构构建设置.

......和:

将架构armv7映射到i386.确保为iOS模拟器平台正确配置了此目标的体系结构和有效体系结构构建设置.

尽管有这些警告,构建和单元测试都通过Ok.我正在使用Swift 4.2.

这些警告仍然是什么?

xcode ios swift xcode10

66
推荐指数
5
解决办法
2万
查看次数

iOS/tvOS游乐场失败,"无法找到所选运行目标的执行服务"

迁移到XCode 7.1后,我不能在iOS和tvOS平台上使用playground.只有OS X有效.最简单的操场代码会产生错误消息:

无法找到所选运行目标的执行服务

我怀疑它与XCode没有找到合适的模拟器,但我不知道在哪里以及如何配置它.

我在现有项目中尝试了游乐场,以及刚刚在启动画面中新创建的游乐场.

什么想法可能是错的?

更新:

检查控制台提供了更多的洞察力,但仍不清楚如何修复:

24/10/2015 10:16:10,193 lsd[279]: LaunchServices: Could not store lsd-identifiers file at /private/var/db/lsd/com.apple.lsdschemes.plist
24/10/2015 10:16:10,212 com.apple.usbmuxd[82]: LOCKDOWN_V2_BONJOUR_SERVICE_NAME is _apple-mobdev2._tcp,8de107c0
24/10/2015 10:16:10,248 Xcode[819]:  DeveloperPortal: Using pre-existing current store at URL (file:///Users/courteouselk/Library/Developer/Xcode/DeveloperPortal%207.1.db).
24/10/2015 10:16:10,381 com.apple.CoreSimulator.CoreSimulatorService[461]: Requested phone is is not available for pairing.  Assuming it has the capability.
24/10/2015 10:16:10,384 com.apple.CoreSimulator.CoreSimulatorService[461]: Requested phone is is not available for pairing.  Assuming it has the capability.
24/10/2015 10:16:12,929 com.apple.usbmuxd[82]: _SendAttachNotification Device 80:ea:96:04:a5:da@fe80::82ea:96ff:fe04:a5da._apple-mobdev2._tcp.local. has already appeared on interface …
Run Code Online (Sandbox Code Playgroud)

xcode swift swift-playground

22
推荐指数
3
解决办法
7025
查看次数

有没有办法打破Swift中数组的reduce函数?

有没有办法做类似的东西break从一个for循环,但在阵列的reduce()功能?

例如,考虑我有一个数组:

var flags = [false, false, true, false, false, true, false]
Run Code Online (Sandbox Code Playgroud)

......我需要累积||起来.使用for循环,可以执行以下操作:

var resultByFor = false

for flag in flags {
    if flag {
        resultByFor = true
        break
    }
}
Run Code Online (Sandbox Code Playgroud)

...即在我们获得第一个时刻,true没有必要完成循环,因为结果true无论如何.

使用reduce(),以下看起来非常整洁:

var resultByReduce = flags.reduce(false) { $0 || $1 }
Run Code Online (Sandbox Code Playgroud)

但是,对于示例中给出的数组,for循环体仅执行3次,而reduce()函数闭包将被触发完整7次.

有没有办法reduce()在第3次迭代中拯救(就像它可以在for循环中完成)?

[UPD]

我过分简化了这个问题.原来的问题更像这样:

extension Int {
    func isWholeMultiplesOf(base: Int) -> Bool {
        return …
Run Code Online (Sandbox Code Playgroud)

arrays break array-reduce swift

16
推荐指数
1
解决办法
3316
查看次数

在Swift 3中扩展ObjC泛型

Swift 3附带SE-0057实现,除其他外,意味着:

默认情况下,参数化Objective-C类的扩展不能以任何方式引用类型参数.例如:

extension MySet {
  func someNewMethod(x: T) { ... } // error: cannot use `T`.
}
Run Code Online (Sandbox Code Playgroud)

... MySet在ObjC中声明的地方@interface MySet<T : id<NSCopying>> : NSObject.

一切都很清楚(甚至还有某种解决方法).但是,尽管我没有使用我想要扩展的ObjC类中的任何类型参数,但以下内容仍无法编译.我只使用另一个不相关的Swift类作为扩展方法的返回参数:

class Foo { }
struct Bar { }

extension MySet {
    func foo() -> Foo { return Foo() } // Both produce: Extension of a generic
    func bar() -> Bar { return Bar() } // Objective-C class cannot access the 
}                                      // class's generic parameters at runtime
Run Code Online (Sandbox Code Playgroud)

这是一个错误吗?或者我错过了什么?

generics parameters objective-c swift swift3

14
推荐指数
1
解决办法
1836
查看次数

如何从Swift中的集合中获取随机元素?

从Swift 1.2(目前可用作测试版)开始,Apple推出了Set集合类型.

说,我有一套像:

var set = Set<Int>(arrayLiteral: 1, 2, 3, 4, 5)
Run Code Online (Sandbox Code Playgroud)

现在我想得到一个随机元素.问题是怎么样的? Set没有提供subscript(Int)Array.相反,它有subscript(SetIndex<T>).但首先,SetIndex<T>没有可访问的初始值设定项(因此,我不能只创建一个带有我需要的偏移量的索引),其次,即使我可以获取set(var startIndex = set.startIndex)中第一个元素的索引,那么我可以得到的唯一方法到第N个索引是通过连续调用successor().

因此,我现在只能看到2个选项,既丑陋又昂贵:

  • 将集合转换为array(var array = [Int](set))并使用其下标(完全接受Int); 要么
  • 获取集合中第一个元素的索引,遍历successor()方法链以获取第N个索引,然后通过set的下标读取相应的元素.

我还想念别的吗?

set swift

12
推荐指数
3
解决办法
6817
查看次数

Swift 2中新的文档注释格式是什么?(XCode 7 beta 3)

Nate Cook和Mattt Thompson 撰写的这篇伟大的文章描述了Swift中文档注释的格式.

但是,自从XCode 7测试版中的Swift 2以来,它的某些部分似乎不再起作用了.例如,:param:并且:returns:不会产生所需的结果(它们只是按原样呈现).

其他部分似乎仍然可以继续工作(即两种类型的注释/// .../** ... */样式,代码块,列表),但无法将文档标记为类似于核心API的类似部分.

有人知道是否有办法在Swift 2中的文档注释中突出显示方法参数和返回结果(过去的内容:param::returns:做法)?

documentation comments swift xcode7 swift2

10
推荐指数
2
解决办法
5672
查看次数

如何使用原始索引枚举切片?

如果我想枚举一个数组(比如说map()我需要将元素的索引与其值一起使用的enumerate()函数),我可以使用函数.例如:

import Foundation

let array: [Double] = [1, 2, 3, 4]

let powersArray = array.enumerate().map() {
    pow($0.element, Double($0.index))
}

print("array == \(array)")
print("powersArray == \(powersArray)")

// array == [1.0, 2.0, 3.0, 4.0]
// powersArray == [1.0, 2.0, 9.0, 64.0] <- As expected
Run Code Online (Sandbox Code Playgroud)

现在,如果我想使用数组中的一些子序列,我可以使用a slice,它将允许我使用与我在原始数组中使用的相同的索引(这正是我想要的情况,如果我会subscriptfor循环中使用访问器).例如:

let range = 1..<(array.count - 1)
let slice = array[range]
var powersSlice = [Double]()

for index in slice.indices {
    powersSlice.append(pow(slice[index], Double(index)))
}

print("powersSlice == \(powersSlice)")

// powersSlice …
Run Code Online (Sandbox Code Playgroud)

enumerate slice swift

7
推荐指数
1
解决办法
477
查看次数

在Swift PM的Package.swift中指定依赖关系分支或提交ID

有没有办法定义依赖关系,Package.swift这将指向某个分支最新提交,甚至只是一个特定的提交ID(就像迦太基可能的那样)?

用例就是,假设我有一个库仓库,我想分支出来并进行一些更改,然后能够在依赖项目中测试它们.

swift-package-manager

7
推荐指数
3
解决办法
1284
查看次数

Swift WKWebView禁用Javascript

WKWebView用来在我的应用程序中加载一些链接.我想禁用几乎所有网页上出现的所有恼人的JavaScript横幅.是否有一个简单的功能可以做到这一点?

ios swift wkwebview

6
推荐指数
1
解决办法
7408
查看次数

找到距给定点一定距离内的所有SKNode的有效方法?

如果我想知道哪个或哪些节点覆盖了场景的某个点,我可以做scene.nodeAtPoint(point)或者scene.nodesAtPoint(point).有没有一种有效的方法可以用圆圈做类似的事情?这是为了能够找到位置与给定点相距一定距离的所有节点.

我需要这个能够更好地处理用户点击.场景相当稀少(没有太多用户活跃的精灵),所以没有必要要求用户非常精确地点击.我想在水龙头的坐标周围使用某种公差,并检测距离足够接近位置的节点.

到目前为止,我最好的想法是做nodeAtPoint()几次:在水龙头的位置,然后在它的各种偏移处(例如,向上,向右,严格,......,左上).

sprite-kit swift

6
推荐指数
3
解决办法
1035
查看次数

除了体系结构方面的考虑,为什么还要在Swift中标记一些最终的东西?

除了明显的原因(例如,由于设计原因,我不希望某些方法或属性,继承树中的任何东西被覆盖)外,是否还有其他原因需要final在Swift中进行标记?

例如,是否有性能方面的考虑?我记得在某处读过SO答案,暗示了一些建议。

swift

3
推荐指数
1
解决办法
253
查看次数