相关疑难解决方法(0)

如何检查两个实例在swift中是相同的类/类型

我知道我可以用Swift检查var的类型 is

if item is Movie {
    movieCount += 1
} else if item is Song {
    songCount += 1
}
Run Code Online (Sandbox Code Playgroud)

但是如何检查两个实例是否具有相同的类?以下不起作用:

if item1 is item2.dynamicType {
    print("Same subclass")
} else {
    print("Different subclass)
}
Run Code Online (Sandbox Code Playgroud)

我可以轻松地添加一个"类"函数并在每个子类中更新它以返回一些独特的东西,但这看起来像一个kludge ...

swift

41
推荐指数
4
解决办法
3万
查看次数

如何在Swift中创建一个类数组

在目标c中,我可以创建一个类数组并在方法中使用它

NSArray *classes = @[[NSAttributedString class]];
NSArray *items = [pasteboard readObjectsForClasses:classes
                                           options:nil];
Run Code Online (Sandbox Code Playgroud)

但是,swift没有"类"功能.返回类的元类型会导致错误

    let aClass : AnyClass!  = NSAttributedString.self
    //or let aClass:AnyClass! = NSAttributedString.classForArchiver()

    let pasteboard = NSPasteboard.generalPasteboard()

    let classes = [aClass]

    let objects = pasteboard.readObjectsForClasses(classes, options: nil)
Run Code Online (Sandbox Code Playgroud)

最后一行导致"致命错误:数组元素无法桥接到Objective-C"

如何在Swift中创建类数组?

class swift

21
推荐指数
1
解决办法
1万
查看次数

Swift - 获取NSBundle用于测试目标?

在Objective C中,每当我必须访问测试包时,我都会调用它

[NSBundle bundleForClass:[ClassInTestTarget class]];
Run Code Online (Sandbox Code Playgroud)

bundleForClass 在Swift中不可用,那么如何访问测试包呢?

我需要这个的原因是,为了编写我正在研究的框架的测试,我必须使用内存核心数据堆栈.最初所有资源都包含在主目标和测试目标中,但之后我将所有这些测试帮助程序仅移动到测试目标,现在下面的代码返回nil,这导致我的所有测试失败

let modelURL = NSBundle.mainBundle().URLForResource("Model", withExtension: "momd")
Run Code Online (Sandbox Code Playgroud)

nsbundle swift

21
推荐指数
1
解决办法
1万
查看次数

Swift运行时文档

我一直在探索Apple的快速文档,现在我在这里问.

是否有关于Swift运行时的文档?

我读过The Swift Programming Language一书.https://itunes.apple.com/us/book/swift-programming-language/id881256329?mt=11

我看过WWDC视频.https://developer.apple.com/videos/wwdc/2014/

我试过搜索Swifts编译器源代码或运行时库源代码.

但是我什么都没发现,除了几个实际上关于Obj-c Swift函数调配/运行时的问题

我的意思是,每个人都知道obj-​​c是如何工作的.isa指针,cmd,我们如何调用方法,动态绑定等.我们知道寄存器如何传递参数.我们可以使用MachOView来定义二进制中使用的所有方法和类.有很多关于obj-c运行时,开源运行时库的文档.Clang是开源的.但是迅速呢?

此信息存在于Objective-C的集中位置.我要求相当于Obj-C运行时库文档.

swift

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

标签 统计

swift ×4

class ×1

nsbundle ×1