Я создал подкласс 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: ингредиент] Я генерирую исключение следующего содержания:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSArray count]: method only defined for abstract class. Define -[IngredientsMutableArray count]!'
Я считаю, что я неправильно инициализирую NSMutableArray. Я собирался к нам initWithCapaciity, но я не знаю счетчик перед вызовом SQL. Я думаю, что упускаю из виду кое-что очевидное, но, будучи новичком в Objective C, я немного сбит с толку.
Любая помощь приветствуется.