我想打印所有類型的值,如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. 如何在Julia中不打印類型?
- 2. 打印數據類型char()
- 3. 如何在Python中打印複雜的字典數據類型?
- 4. 通過SQL合併打印與不同的數據類型
- 5. 類型'char *'但參數的類型'char'也有數據不打印到文件
- 6. 打印數據類型 - 哈斯克爾
- 7. 打印類型1.8
- 8. 在mysql中爲不同類型的數據類型使用不同的表格
- 9. Rascal中的打印類型參數
- 10. 如何打印數據類型爲numpy的數組?
- 11. 如何使用代數數據類型的類型同義詞?
- 12. 如何在打字稿中創建不同的數字類型?
- 13. 如何從匿名類中獲取不同類型的數據
- 14. 在不知道類型的情況下打印數據?
- 15. 如何根據數據(輸入)類型打印某些內容?
- 16. 打印出每個數字在「長」數據類型在Java中
- 17. SDLNet_TCP_Send中的不同類型的數據
- 18. python如何在數組中有不同的數據類型?
- 19. 列中的不同數據類型
- 20. 類型類Haskell中的數據類型
- 21. 一個打印不同類型成員的函數
- 22. 在c中打印基本數據類型的範圍
- 23. 在gdb調試器中打印__m128數據類型的值
- 24. 在C中打印特定數據類型的值?
- 25. 在Spark中打印出數據幀列的類型
- 26. 如何打印int * int * int類型
- 27. 如何打印CMB2字段類型?
- 28. 如何參數類型轉換爲不同的對象類型
- 29. 如何在php中輸出不同類型的數據?
- 30. C如何在內存中存儲不同的數據類型?
打印它們正是你在做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