且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

我们如何在 Objective-C 中打印不同类型的数据类型?

更新时间:2022-11-24 15:06:21

原始类型,例如 int、float、double 等,可以使用 printf 以与在 C 中打印相同的方式打印、fprintf等.如果需要打印一个类的数据,通常可以使用NSObject的方法(NSString *)description得到一个表示对象数据的 NSString.这是一个例子...

Primitive types such as int, float, double, etc can be printed in the same fashion they are printed in C, using printf, fprintf, etc. If you need to print the data of a class you can often use NSObject's method (NSString *)description to get a NSString representing the data of the object. Here is an example...

#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;
}

我认为在运行示例时查看输出会有所帮助...

I thought it would helpful to see the output when the example is ran...

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!"
)