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.
+2
A:
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!"
)
Steve Melvin
2010-03-12 07:48:03
You can initialize constant NSStrings, just do like NSString* string = @"Some string". stringWithFormat: is an expensive way to initialize since it has to parse the format string, not to mention the unnecessary method invocation. Also, number is a signed integer and %u is for unsigned integers.
Jason Coco
2010-03-12 07:53:10