2010-12-15 27 views
9

Tôi đã sử dụng Objective-C trong một thời gian, nhưng chưa bao giờ thực sự hiểu mục đích của biểu tượng @ trước tất cả các chuỗi là gì. Ví dụ, tại sao bạn phải khai báo một chuỗi như thế này:Mục đích của @ Symbol Before Strings?

NSString *string = @"This is a string"; 

và không như thế này:

NSString *anotherString = "This is another string"; 

như bạn làm trong Java hay rất nhiều ngôn ngữ lập trình khác. Có lý do chính đáng nào không?

+3

Xem [Biểu tượng @ đại diện cho mục tiêu-c là gì? ] (http://stackoverflow.com/questions/25749/what-does-the-symbol-represent-in-objective-c). –

+0

Điều đó có ý nghĩa. Cảm ơn! – Jumhyn

Trả lời

12

Nó biểu thị một NSString (chứ không phải là một chuỗi C tiêu chuẩn)

một NSString là một đối tượng mà các cửa hàng một chuỗi unicode và cung cấp một loạt các phương pháp để hỗ trợ việc chế tác.

chuỗi C chỉ là một \ 0 chuỗi ký tự bị chấm dứt (byte).

CHỈNH SỬA: và lý do chính đáng là Mục tiêu-C xây dựng trên đầu trang của C, các cấu trúc ngôn ngữ C cần phải có sẵn. @ "" là tiện ích mở rộng chỉ mục tiêu-c.

+0

Tôi nhận ngay bây giờ. Cảm ơn bạn! – Jumhyn

+4

Khi bạn nhìn thấy một @ ở phía trước của một cái gì đó trong ObjC, đó là một dấu hiệu tốt cho thấy nó là một phần của phần mở rộng mà ObjC tạo ra cho C. @interface, @implementation, @protocol, @selector, @class, vv @ là loại không gian tên Objective-C không chính thức. Nó tương tự như cách mọi thứ trong Cocoa được bắt đầu bằng 'NS' để nó không có xu hướng xung đột với những thứ khác đang diễn ra. – Ken