2011-09-19 7 views
6

ví dụ tôi có một mảng char:làm thế nào để thay đổi các mảng char để NSString

char array[8]; 

tôi đã cố gắng:

NSString *marketPacket = [NSString stringWithCString:array encoding:NSASCIIStringEncoding]; 
NSLog(@"%@",marketPacket); 

nhưng hiển thị ký tự hỏng

+1

Đối với bất kỳ ai đến đây và nhầm lẫn với câu trả lời: OP không có * trước 'marketPacket' trong phiên bản gốc của câu hỏi này, nhưng thay đổi nó sau này làm cho toàn bộ câu hỏi vô nghĩa. – colincameron

+1

Ngoài ra, đây là kết quả đầu tiên của Google cho "nsstring từ mảng char" – colincameron

+0

Không có ý tưởng tại sao điều này đã bị đóng. Quá địa phương hóa? –

Trả lời

0

Thay đổi để

NSString *marketPacket

Nên đã cho bạn một lỗi trình biên dịch, thực sự. Lạ thật. Ít nhất, giả sử bạn đã sao chép và dán mã, bạn cần một con trỏ tới NSString (vì nó là một đối tượng được quản lý).

12
char array[5] = {'a', 'b', 'c', 'd', '\0'}; 
NSString *marketPacket = [NSString stringWithCString:array encoding:NSASCIIStringEncoding]; 

NSLog(@"%@", marketPacket); 

NSString là một lớp và bạn tạo một thể hiện của nó, vì vậy bạn phải đặt *. Nếu bạn tạo một mảng, chỉ cần điền nó vào để xem nội dung nào đó ..