Jak używać printf z NSString

Muszę użyć czegoś w rodzaju NSLog, ale bez znacznika czasu i znaku nowej linii, więc używam printf. Jak mogę użyć tego z NSString?

Author: Jacob Relkin, 2010-09-26

2 answers

Możesz przekonwertować NSString na UTF8 string, wywołując metodę UTF8String:

printf("%s", [string UTF8String]);
 92
Author: Jacob Relkin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-26 00:26:46
//public method that accepts a string argument

- (void) sayThis : ( NSString* )  this 
{

    printf("%s",[this cString]);    
}

Według NSString.h (wersja html ) metoda UTF8String jest dostępna tylko w systemie Mac OSX.

(patrz poniżej ) Wszystkie inne metody, na które patrzyłem, są oznaczone jako 'dostępność: Openstep'

Istnieją inne metody, które zwracają zwykłe łańcuchy znaków*, ale mogą rzucać wyjątki konwersji znaków.

Uwaga wskaźniki ciągu znaków wskazują na pamięć, która może zniknąć, więc musisz skopiować łańcuchy, jeśli chcesz zachować kopię łańcucha zawartość, ale natychmiastowe drukowanie powinno być w porządku ?

Istnieją również metody, które zwrócą zakodowany ciąg znaków, oraz metoda do sprawdzenia, czy kodowanie, które chcesz będzie działać ( myślę), więc można sprawdzić, czy wymagane kodowanie będzie działać, a następnie zażądać ciąg, który został zakodowany zgodnie z wymaganiami.

Od czytania przez .sam plik h istnieje wiele kodowań i tłumaczeń między kodowaniami. Są one zarządzane za pomocą wyliczeń, dzięki czemu można przekazać typ kodowania, który chcesz jako argument.

Na Linuksie itp. do:

Zlokalizuj NSString.h ** Zauważ, że znaleziono również plik HTML doc

W przeciwnym razie zrób a:

Find / usr-name NSString.h

Uwaga twój przebieg może się różnić:)

Dzięki.

Z NSString.h plik HTML doc:

CString - (const char*) cstrring; Dostępność: OpenStep

Zwraca wskaźnik do zakończonego znakiem NUL łańcucha 8-bitowych znaków w domyślnym kodowaniu. Pamięć wskazywana jest nie jest własnością rozmówcy, więc rozmówca musi skopiować jego zawartość, aby ją zachować. Powoduje wystąpienie NSCharacterConversionException, jeśli podczas konwersji nastąpi utrata informacji. (Patrz-canBeConvertedToEncoding:.)

CStringLength - (NSUInteger) cStringLength; Dostępność: OpenStep

Zwraca długość wersji tego ciągu Unicode przekonwertowanego na bajty przy użyciu domyślnego kodowania ciągu C. Jeśli konwersja spowoduje utratę Informacji, wyniki są nieprzewidywalne. Sprawdź - canbeconverted toencoding: first.

CStringUsingEncoding: - (const char*) cstringusingencoding: (NSStringEncoding)kodowanie; Dostępność: MacOS-X 10.4.0, Base 1.2.0

Zwraca wskaźnik do zakończonego null ciągu znaków w podanym kodowaniu. NB. w GNUstep można go użyć do uzyskania zakończonego znakiem NUL łańcucha utf-16 (szesnaście bitowych znaków), a także ośmiobitowych łańcuchów. Wskazywana pamięć nie jest własnością rozmówcy, więc rozmówca musi skopiować jej zawartość do zatrzymaj to. Powoduje wystąpienie NSCharacterConversionException, jeśli podczas konwersji nastąpi utrata informacji.

CanBeConvertedToEncoding: - (BOOL) canBeConvertedToEncoding: (NSStringEncoding)kodowanie; Dostępność: OpenStep

Zwraca, czy ten łańcuch może być przekonwertowany do podanego kodowania bez utraty informacji.

 0
Author: supernoob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-19 14:45:05