我来自php背景......所以我想知道Xcode是否存在var_dump
这样的事情,我知道NSLog
但我希望它像{{1}一样行事}。
这是否有功能?
答案 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
方法,该方法提供对象的描述。默认实现只打印类的名称,但它通常被子类覆盖,以提供更有意义的内容描述。
例如,NSArray
和NSDictionary
的情况,其实现产生NSString
,表示存储在集合中的对象。
当你这样做时
NSLog(@"%@", anObject);
在对象上自动调用 description
以检索它的文本表示。
也可以在调试器中执行
po anObject
获得相同的结果。
最重要的是,如果您需要提供您实施的自定义类的表示,那么可以采用的方法是覆盖description
。