Bạn đang thấy điều này vì NSString là một cụm lớp. Xem tài liệu của Apple here để có giải thích chung và here cho ghi chú cụ thể về phân lớp NSString. Về cơ bản, NSString là một lớp trừu tượng không có phương thức lưu trữ các ký tự, và các phương thức -initWith… khác nhau đều trả về các lớp con cụ thể khác nhau của NSString dựa trên phương thức khởi tạo. Thông thường, khi bạn đang sử dụng NSString, điều này hoàn toàn minh bạch. Tuy nhiên, nếu bạn muốn phân lớp NSString, bạn phải thực hiện ít nhất các phương thức cơ bản (-length, và -characterAtIndex :) cộng với bất kỳ phương thức init nào bạn muốn có (cộng với, rõ ràng là có cách lưu trữ các ký tự của chuỗi).
Nếu bạn chỉ muốn thêm chức năng vào NSString, phân lớp phụ thường không cần thiết. Trước tiên, bạn nên kiểm tra xem một thể loại, hoặc một hàm hoạt động trên một NSString, hoặc một phương thức trên một lớp có chứa NSString sẽ hoạt động tốt hơn. Ví dụ: xem RegexKit hoặc Google Toolbox For Mac, cả hai đều thực hiện hỗ trợ biểu thức chính quy bằng cách sử dụng danh mục trên NSString.
Nguồn
2010-04-03 16:49:18
HOw bạn đã phân bổ trường hợp này? –
Hiển thị mã của bạn. –