Почему я не могу назвать этот метод? - PullRequest
0 голосов
/ 09 февраля 2012

У меня есть подпись метода здесь:

.h

-(void)addToArray

И я хочу использовать ее здесь:

.m 

-(void)viewDidLoad{
NSMutableArray *array = [[NSMutableArray alloc]init];
[array addToArray];
}

-(void)addToArray{
//some code here…
}

Проблема в том, что когда я делаю [array addToArray];он возвращает мне сообщение, в котором говорится: «Метод экземпляра -addToArray не найден (тип возвращаемого значения по умолчанию равен« id »)». Как я могу это решить?

Ответы [ 4 ]

3 голосов
/ 09 февраля 2012

Ответ Шубханка действительно верный, однако, если вы хотите выполнить то, что первоначально описали, то есть, если экземпляр NSMutableArray отвечает на ваш метод, вы можете добиться этого с помощью категорий. https://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/chapters/occategories.html

Этот блог подробно описывает добавление категории в NSArray и / или NSMutableArray. http://it.toolbox.com/blogs/macsploitation/extending-classes-in-objectivec-with-categories-27447

3 голосов
/ 09 февраля 2012

когда вы делаете [array somemethod] ..it будет искать метод в этом классе типов данных массива (то есть в NSMutableArray class.

, когда у вас есть метод в вашем собственном классе.это не категория ... тогда вы должны вызывать

[self somemethod]

таким образом, он будет выглядеть в классе, в котором вы вызываете метод.

3 голосов
/ 09 февраля 2012

Изменить на:

.h

-(void)addObjectsToArray:(NSMutableArray*)a;

.m

- (void)viewDidLoad {
     NSMutableArray * array = [[NSMutableArray alloc]init];
     [self addObjectsToArray:array];
}
- (void)addObjectsToArray:(NSMutableArray*)a {
     //some code here…
     [a addObject:[NSString stringWithFormat:@"Example String Object"]]; // example way to add objects to the array
}
0 голосов
/ 09 февраля 2012

В вашем m-файле попробуйте сделать следующее: #import "независимо от того, что он назвал .h", если вы еще этого не сделали.Если вы предоставите больше кода, я могу дать больше помощи, но я надеюсь, что это поможет.

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