Tôi đến từ một nền Java và tôi đang học Mục tiêu C. Tôi đang cố tạo một lớp có một mảng chuỗi và một hàm thành viên để sửa đổi Mảng. Mã của tôi trông giống như sau:Làm thế nào để khởi tạo một NSMutableArray trong mục tiêu C?
@implementation TAWChapter
@synthesize mSubject;
@synthesize mItems;
- (id) init{
self.mItems = [[NSMutableArray alloc] init];
return self;
}
- (void) setSubject:(NSString *)subject{
self.mSubject = subject;
}
- (void) addItem:(NSString *)item{
[self.mItems addObject:@"asdf"];
}
@end
Không hoạt động. Tôi đã nhận được "[__NSArrayI addObject:]: unrecognized selector sent to instance "
và một số "NSInvalidArgumentException"
. Sau khi tìm kiếm trên internet, tôi đã thay đổi dòng đơn trong hàm tạo thành:
self.mItems = [self.mItems init];
Nó hoạt động, nhưng tại sao? Từ quan điểm của nhà phát triển Java, quan điểm đầu tiên có ý nghĩa hơn cái thứ hai. Và tôi có một dòng khác nó giống như dòng đầu tiên nhưng nó hoạt động (không phải trong một hàm tạo). Ai đó có thể giải thích điều này cho tôi được không?
Những câu trả lời có lẽ giải quyết vấn đề này, nhưng chúng tôi không thể chắc chắn cho đến khi chúng ta thấy việc kê khai tài sản của 'mItems'. –