相关疑难解决方法(0)

如何在Swift中打印变量的类型或类?

有没有办法在swift中打印变量的运行时类型?例如:

var now = NSDate()
var soon = now.dateByAddingTimeInterval(5.0)

println("\(now.dynamicType)") 
// Prints "(Metatype)"

println("\(now.dynamicType.description()")
// Prints "__NSDate" since objective-c Class objects have a "description" selector

println("\(soon.dynamicType.description()")
// Compile-time error since ImplicitlyUnwrappedOptional<NSDate> has no "description" method
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我正在寻找一种方法来显示变量"很快"是类型ImplicitlyUnwrappedOptional<NSDate>,或至少NSDate!.

types swift

325
推荐指数
16
解决办法
20万
查看次数

检查对象是否是Swift中的给定类型

我有一个由数组组成的数组AnyObject.我想迭代它,并找到所有元素作为数组实例.

如何在Swift中检查对象是否属于给定类型?

type-inference typechecking swift

251
推荐指数
10
解决办法
18万
查看次数

如何检查两个实例在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中测试变量的类?

我想检查数组的元素是否是Swift中UILabel的子类:

import UIKit

var u1 = UILabel()
u1.text="hello"
var u2 = UIView(frame: CGRectMake(0, 0, 200, 20))
var u3 = UITableView(frame: CGRectMake(0, 20, 200, 80))

var myArray = [u1, u2, u3]

var onlyUILabels = myArray.filter({"what to put here?"})
Run Code Online (Sandbox Code Playgroud)

没有桥接到目标c.

ios swift

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

Swift相当于@encode

Swift是否与Objective-C相当@encode

例如

@encode(void *) // -> @"^v"
Run Code Online (Sandbox Code Playgroud)

搜索没有产生任何结果.

objective-c swift

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

如何在Swift上打印类名?

在Swift中,我们不能再使用"self.class"了.

我想在NSObject的子类中为描述方法打印自己的类名.

我该如何打印?或者我应该为获取课程名称制作新方法?


我检查了以下问题,但我无法得到答案.

如何在Swift中打印变量的类型或类?

你如何找到一个对象的类型(在Swift中)?

import UIKit

class PrintClassName: NSObject {
    override init() {
        super.init()
        println("\(self.dynamicType)")
        // Prints "(Metatype)"

        println("\(object_getClassName(self))");
        // Prints "0x7b680910 (Pointer)"

        println("\(self.className)")
        // Compile error!

        println(PrintClassName.self)
        // Prints "(Metatype)"
    }
}
Run Code Online (Sandbox Code Playgroud)

2014.08.25后记

我查了一下这个问题.

Swift类内省和泛型

println(PrintClassName.self)打印"(元型)"

而且我想在不在源代码上编写类名的情况下获取类名.

swift

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

在Swift中打印当前文件的类名

我正在尝试在Swift中打印当前类的名称.更具体地说,我想实现以下输出:

myFunction() in ClassContainingTheFunction
Run Code Online (Sandbox Code Playgroud)

我的功能名称打印很好.这是我最接近打印类名和函数名称:

println("\(__FUNCTION__) in \(__FILE__)") 
Run Code Online (Sandbox Code Playgroud)

版画

myFunction() in path/to/TheFile.swift
Run Code Online (Sandbox Code Playgroud)

 println("\(__FUNCTION__) in \(object_getClassName(self))")
Run Code Online (Sandbox Code Playgroud)

版画

 myFunction() in [mangled class name here]
Run Code Online (Sandbox Code Playgroud)

这两个都接近我想要的,但路径很长,与我在代码中看到的名称相比,受损的类名称可能非常难以理解.

ios swift

18
推荐指数
1
解决办法
9067
查看次数

斯威夫特太聪明了?使用XCTest进行测试时检查对象类型

我知道有很多关于如何使用Swift获取对象类型的问题.

例如:如何找出对象的类型(在Swift中)?

我想找到类型的原因是我可以测试在单元测试中返回正确的东西.前提是如果有人改变它,测试将失败,我们将会更加小心.

Swift有一个is方法,它返回一个关于对象是否属于某种类型的布尔值.我想使用is,然后断言响应是真的.

正如此处所述(http://www.raywenderlich.com/74138/swift-language-faq)然而,并在实践中显示..这引发了一个错误:

错误:'是'测试总是如此

关键是它现在返回true ..我正在编写一个测试,以便始终如此.愚蠢的.

有关如何使用XCTest和swift测试响应类型的任何想法?

谢谢

unit-testing ios xctest swift

13
推荐指数
2
解决办法
5065
查看次数

你如何在Swift中检索对象的类型?

我似乎无法找到一个返回Swift中对象类型的函数或方法.

如何在Swift中检索对象的类型或类?

我尝试使用Obj-C类,这显然不起作用.

在python中你有像type或者的东西isinstance

在Javascript中你有 constructor

swift

10
推荐指数
1
解决办法
9119
查看次数

如何在swift中检查对象属于类或结构体

我很快陷入了这个问题.假设我有一个对象,如何在swift中检查它是来自struct还是class.

struct class ios swift

10
推荐指数
3
解决办法
3092
查看次数