Я подклассифицировал NSMutableArray следующим образом:
Базовый класс:
@interface MyBaseMutableArray : NSMutableArray {
// Database variables
NSString * databaseName;
NSString * databasePath;
}
@property (nonatomic, retain) NSString * databasePath;
- (id)initWithContentsOfSQLiteDB:(NSString *)dbTable;
-(void) checkAndCreateDatabase;
-(void) readFromDatabase;
@end
Подкласс:
@interface IngredientsMutableArray : MyBaseMutableArray
{
}
-(void) readFromDatabase;
@end
Когда я создаю IngredientsMutableArray, я делаю следующее:
IngredientsMutableArray * i = [[IngredientsMutableArray alloc]
initWithContentsOfSQLiteDB:@"MyIngredientsDB.sql"];
НО, когда я пытаюсь выполнить [self addObject: component], я делаю исключение следующим образом:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSArray count]: method only defined for abstract class. Define -[IngredientsMutableArray count]!'
Я считаю, что я не инициализирую NSMutableArray правильно. Я собирался для нас initWithCapaciity, но я не знаю счет перед вызовом SQL. Я думаю, что я пропускаю что-то очевидное, но, будучи новичком в Objective C, я немного озадачен.
Любая помощь приветствуется.