Как мы можем напечатать различные типы типов данных в target-C? - PullRequest
4 голосов
/ 12 марта 2010

Я хочу напечатать значения всех типов, таких как char, long ... и так далее, а также nsdate, nsdictionary, frame .... Теперь я хочу напечатать значения переменных каждого типа.

1 Ответ

10 голосов
/ 12 марта 2010

Примитивные типы, такие как int, float, double и т. Д., Могут быть напечатаны так же, как они печатаются в 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!"
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...