Я получаю ошибки при попытке добавить элементы в NSMutableArray, который инкапсулируется внутри объекта.Ошибка При добавлении объекта в NSMutableArray
код следующим образом:
#import <Foundation/Foundation.h>
@interface TestObject : NSObject {
NSMutableArray *myArray;
}
@property (nonatomic, retain) NSMutableArray *myArray;
@end
#import "TestObject.h"
@implementation TestObject
@synthesize myArray;
- (id) init {
if(self= [super init]){
// Initialise the Mutable Array
myArray = [[NSMutableArray alloc] init];
}
return self;
}
- (void) dealloc {
[super dealloc];
[myArray release];
}
@end
Призвание:
TestObject *testObject = [[TestObject alloc] init];
NSString *someString = @"blah blah blah";
NSLog(@"%@", someString);
[testObject.myArray addObject:someString];
NSLog(@"Test Object Array Count: %@", [testObject.myArray count]);
[testObject release];
Может кто-нибудь сказать мне, почему это выдает ошибку при вызове счета?
Я также попытался скопировать Mutable Array в локальную переменную и получить тот же результат при вызове count для локальной переменной.
Исправлена ошибка. NSLog (@ "Test Object Array Count:% d", [testObject.myArray count]); –
Не пытайтесь ответить на ваш вопрос, но я настоятельно рекомендую переместить этот вызов [myArray release] в ваш -dealloc до того, как вы сделаете супервызов. – Benjamin
Спасибо, Бенджамин, немного недосмотр с моей стороны. Я набрал этот код вручную в Safari, так как у меня нет xcode на этой машине. –