How can we print different types of data types in objective-C?

爷,独闯天下 提交于 2019-12-22 09:10:34

问题


I want to print values of all the types like char, long... so on and also nsdate, nsdictionary, frame ....I want to now to print values of each type variables.


回答1:


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

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


来源:https://stackoverflow.com/questions/2430706/how-can-we-print-different-types-of-data-types-in-objective-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!