Ошибка при добавлении объекта в NSMutableArray - PullRequest
0 голосов
/ 27 июля 2010

Я получаю ошибки при попытке добавить элементы в 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];

Может кто-нибудь сказать мне, почему это вызывает ошибку при вызове count?

Я также попытался скопировать Mutable Array в локальную переменную и получить тот же результат при вызове count для локальной переменной.

Ответы [ 2 ]

2 голосов
/ 27 июля 2010

Предупреждение предупреждение предупреждение !!!

[super dealloc] - это последняя вещь, которую вы должны сделать в своем методе -dealloc, не первый!

0 голосов
/ 27 июля 2010

Хорошо, что он только что показал предупреждение, когда я сделал то же самое, он упал.

Причина в том, что% @ является заполнителем объекта. Но метод count возвращает NSInteger, который является примитивным типом данных, и его заполнителем является% d, как вы правильно отметили в комментарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...