Xcode中是否有var_dump?

时间:2013-11-11 20:04:42

标签: ios xcode

我来自php背景......所以我想知道Xcode是否存在var_dump这样的事情,我知道NSLog但我希望它像{{1}一样行事}。

这是否有功能?

3 个答案:

答案 0 :(得分:5)

在swift中,您可以使用dump(var),它使用镜像进行内省,对类很有用。

例如:

let pet = Pet(name:"Max", age: 4)
let adam = Person(name:"Adam", age: 30, pet:pet)

print("\(pet)")
print("\(adam)")
print("======")
dump(pet)
dump(adam)

输出将是:

Pet
Person
======
▿ Pet #0
  - name: "Max"
  - age: 4
▿ Person #0
  - name: "Adam"
  - age: 30
  ▿ pet: Optional(Pet)
    ▿ some: Pet #1
      - name: "Max"
      - age: 4

答案 1 :(得分:2)

在代码中:

NSLog(@"%@", myVar);

相当于

NSLog(@"%@", [myVar description]);

或者在调试器中:右键单击变量,然后选择“打印描述”。

如果要以这种方式检查自己类的对象,则需要为这些类实现方法-(NSString *)description

答案 2 :(得分:2)

NSObject定义description方法,该方法提供对象的描述。默认实现只打印类的名称,但它通常被子类覆盖,以提供更有意义的内容描述。

例如,NSArrayNSDictionary的情况,其实现产生NSString,表示存储在集合中的对象。

当你这样做时

NSLog(@"%@", anObject);
在对象上自动调用

description以检索它的文本表示。

也可以在调试器中执行

po anObject

获得相同的结果。

最重要的是,如果您需要提供您实施的自定义类的表示,那么可以采用的方法是覆盖description