Byłem w stanie znaleźć metody takie jak -[NSString stringWithCString:encoding:]
, ale nie wydają się grać dobrze, gdy cstring jest wskaźnikiem.Jak przekonwertować cstring na NSString?
Odpowiedz
Po pierwsze, nie używaj initWithCString
, został przestarzały.
Kilka sposobów można to zrobić:
const *char cString = "Hello";
NSString *myNSString = [NSString stringWithUTF8String:cString];
Jeśli potrzebujesz innego kodowania jak ASCII:
const *char cString = "Hello";
NSString *myNSString = [NSString stringWithCString:cString encoding:NSASCIIStringEncoding];
Jeśli chcesz zobaczyć wszystkie kodowania strunowe dostępne w Xcode, przytrzymaj polecenie + opcja następnie kliknij dwukrotnie na NSASCIIStringEncoding
w powyższym bloku kodu.
Będzie można zobaczyć, gdzie Apple zadeklarowało wyliczenie dla typów kodowania ciągów. Trochę szybciej niż próbując znaleźć to w dokumentacji.
niektórych innych te, które mogą być potrzebne:
NSASCIIStringEncoding
NSUnicodeStringEncoding // same as NSUTF16StringEncoding
NSUTF32StringEncoding
Zamówienie Apple NSString Class Reference (kodowania są na dole strony)
stringWithCString:encoding:
tworzy NSString z danego ciągu C. Aby utworzyć łańcuch C z NSString, użyj metody UTF8String
(zazwyczaj preferowanej) lub cStringUsingEncoding:
(jeśli potrzebujesz kodowania innego niż UTF-8).
Ponieważ metoda cString jest przestarzała, ta odpowiedź jest lepsza niż akceptowana. –
tak źle, naprawiłem to teraz –
Z nowoczesnym Objective-C (od Xcode 5 co najmniej) można po prostu do:
char const* cString = "Hello";
NSString *myNSString = @(cString);
- 1. Jak przekonwertować nsstring na cString?
- 2. Jak przekonwertować CString na podwójne w C++?
- 3. Jak przekonwertować NSString na ciąg C?
- 4. Jak przekonwertować CFStringRef na NSString?
- 5. Jak przekonwertować NSData na NSString?
- 6. Jak przekonwertować NSMutableArray na NSString?
- 7. Jak przekonwertować NSUrl na NSString?
- 8. Konwersja NSString na cString do użycia z CGContextShowTextAtPoint
- 9. Jak przekonwertować NSMutableData na NSString na iPhone?
- 10. NSString cString jest przestarzałe. Jaka jest alternatywa?
- 11. Jak mogę przekonwertować Int do CString?
- 12. Konwersja CString na LPCTSTR
- 13. Jak przekonwertować NSString na CGPoint w iPhonie?
- 14. Konwertuj MFC CString na liczbę całkowitą
- 15. Jak przekonwertować HEX na NSString w Objective-C?
- 16. Jak przekonwertować znak niepodpisany na NSString w iOS
- 17. Jak przekonwertować wartość NSString @ "3.45" na wartość float?
- 18. Podział NSString na Array
- 19. Konwertuj CString do tablicy znaków?
- 20. Konwertuj NSString na NSInteger?
- 21. Konwersja NSString * na char?
- 22. Konwertuj NSMutableAttributedString na NSString
- 23. Jak przekonwertować wchar_t * na const char *
- 24. Jak przekonwertować NSUUID na NSData
- 25. Konwersja NSString na const char
- 26. Konwersja obiektu NSData na NSString
- 27. Jak przekonwertować NSString jako format JSON w ios5?
- 28. Jak przekonwertować CFDataRef na NSData?
- 29. C++ LibCurl - Konwersja kodu CURL na CString
- 30. Konwertuj wartość pływającą na NSString
Działają idealnie dobrze ze wskaźnikami, musisz być bardziej opisowy w kwestiach, z którymi mierzysz. – codelogic
Co więcej, * wszystkie * C struny są wskaźnikami. To jest definicja łańcucha C: wskaźnik do niektórych znaków. –
Właściwie myślę, że mówisz o konwersji CString na NSString :) –