我想打印所有类型的值,如char,long ...等等,还有nsdate,nsdictionary,frame ....我现在想打印每个类型变量的值。如何在Objective-C中打印不同类型的数据类型?
回答
基本类型,如整数,浮点,双,等可以在它们被打印在C相同的方式进行打印,使用printf
,fprintf
,等等。如果需要打印你可以经常使用NSObject
类的数据的方法(NSString *)description
以获得表示对象的数据的NSString
。下面是一个例子...
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString *string = [NSString stringWithFormat:@"Hello World!"];
NSDate *date = [NSDate dateWithTimeIntervalSinceNow:0];
NSArray *array = [NSArray arrayWithObject:@"Hello There!"];
char *c_string = "Familiar ol' c string!";
int number = 3;
printf("C String: %s\n",c_string);
printf("Int number: %u\n", number);
//In 10.5+ do not use [NSString cString] as it has been deprecated
printf("NSString: %s\n", [string UTF8String]);
printf("NSDate: %s\n", [date.description UTF8String]);
printf("NSArray: %s\n", [array.description UTF8String]);
//If you are using this information for debugging, it's often useful to pass the object to NSLOG()
NSLog(@"NSArray *array = \n%@", array);
[pool drain];
return 0;
}
编辑:我认为这将有助于看到输出当例子跑了......
C String: Familiar ol' c string!
Int number: 3
NSString: Hello World!
NSDate: 2010-03-12 01:52:31 -0600
NSArray: (
"Hello There!"
)
2010-03-12 01:52:31.385 printfTest[2828:a0f] NSArray *array =
(
"Hello There!"
)
你可以初始化常量NSString,就像NSString * string = @“Some string”一样。 stringWithFormat:是一种昂贵的初始化方式,因为它必须解析格式字符串,更不用说不必要的方法调用了。此外,数字是有符号整数,%u是无符号整数。 – 2010-03-12 07:53:10
作为Objective C的新手......在分别打印整数和字符串之前,您所说的“%u”和“%s”分别是什么意思?我注意到它们不是没有印刷的,但它代表什么呢? – arik 2010-11-07 12:30:13
arik-so:%u和%s被称为转义序列。它们在技术上不是Objective-C的一部分,而是printf函数。 http://faq.cprogramming.com/cgi-bin/smartfaq.cgi?answer=1048379655&id=1043284385 – 2010-11-20 04:47:42
- 1. 打印数据类型char()
- 2. 如何在Python中打印复杂的字典数据类型?
- 3. 类型'char *'但参数的类型'char'也有数据不打印到文件
- 4. Rascal中的打印类型参数
- 5. 如何打印数据类型为numpy的数组?
- 6. 如何在打字稿中创建不同的数字类型?
- 7. 如何使用代数数据类型的类型同义词?
- 8. 在不知道类型的情况下打印数据?
- 9. 如何根据数据(输入)类型打印某些内容?
- 10. 打印出每个数字在“长”数据类型在Java中
- 11. SDLNet_TCP_Send中的不同类型的数据
- 12. 列中的不同数据类型
- 13. 类型类Haskell中的数据类型
- 14. 一个打印不同类型成员的函数
- 15. 在Spark中打印出数据帧列的类型
- 16. 在C中打印特定数据类型的值?
- 17. 如何打印CMB2字段类型?
- 18. 如何在MySQL中获取不同类型的相关数据?
- 19. 如何在php中输出不同类型的数据?
- 20. C如何在内存中存储不同的数据类型?
- 21. 如何参数类型转换为不同的对象类型
- 22. 数据帧R不同数据类型
- 23. 访问打印脚本联合类型中的不同属性
- 24. 参数不同的数据类型
- 25. ComboBox打印对象类型
- 26. 将不同的数据类型合并为一个空类型
- 27. 如何基于Haskell Groundhog的数据库类型指定不同的列类型?
- 28. 在bytearrayoutputstream中添加两种数据类型并打印它
- 29. 如何在SQL服务器数据透视表中获取动态不同类型的数据类型值的
- 30. 如何在swift中使用泛型类型处理不同的类型?
打印它们正是你在做C.以同样的方式对于Objective-C类型,可以使用NSLog来打印它们并用%@或调用描述和UTF8String来表示它们,并使用%s使用printf和hte打印,或者使用其他方式打印字符串。因此,给定一些NSDate someDate,使用printf打印:printf(“Some date:%s \ n”,[[someDate description] UTF8String]); – 2010-03-12 05:42:03