Objective-C:NSLog传递值(按引用传递与按值传递)

时间:2014-06-07 12:49:23

标签: objective-c pointers object nsstring nslog

我有一个关于在为iOS开发时在Objective-C中使用NSLog函数的问题。 我习惯了C ++语法,所以这有点新鲜。

在第一种情况下,我们看到指针的值在函数中传递: NSLog with value of pointer

在第二种情况下,我们看到指针本身在函数中传递: NSLog with pointer adres

这是否意味着%@参数获取指向对象的指针, 和所有其他(%i,%c,%d,%f,u)取值。我想它与原始数据类型和对象有关吗?

1 个答案:

答案 0 :(得分:1)

  

这是否意味着%@参数采用指向对象的指针

是的,它需要一个指向Objective-C对象的指针,该对象可以是NSString类型或任何其他NSObject派生类型;在后一种情况下,description方法用于将对象转换为字符串。您可以将其视为Objective-C字符串的%s等价物。

这就是Apple中描述%@占位符的方式:

  

Objective-C对象,打印为descriptionWithLocale返回的字符串:如果可用,或者说是其他描述。也适用于CFTypeRef对象,返回CFCopyDescription函数的结果。

请查看this Apple document了解更多详情以及"String Format Specifiers"