iOS newb пытается вывести массив из другого класса и получить ошибку. По сути, я не совсем понимаю разницу между методами и свойствами, я понимаю, поэтому это может помочь мне лучше понять это.Objective-C: Синтаксис для вызова метода из другого класса
Я создал метод, который возвращает массив. Я хочу использовать этот массив в другом классе (например, функция, возвращающее значение на других языках), поэтому я думал, что я хотел бы сделать это следующим образом:
class1
- (id) getTags{
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Tags"];
fetchRequest.resultType = NSDictionaryResultType;
NSError *error = nil;
NSArray *results = [self.managedObjectContext executeFetchRequest:fetchRequest
error:&error];
NSMutableArray * tags = [[results valueForKey:@"tag"] mutableCopy];
return tags;
}
Другими словами, я хочу, чтобы использовать то, что этот метод возвращает как своего рода переменная, которая в Objective C называется свойствами. Этот метод также находится в файле .h, чтобы он был общедоступным.
В классе 2 импортировать класс 1 сверху, а затем попытаться вызвать метод следующим образом:
NSArray *newarray = [class1 getTags];
Однако я получаю ошибку «Ни один из известных метод класса для getTags селекторных»
Может кто-нибудь сказать мне, что я делаю неправильно?
Спасибо.
Первоначально я пытался NSArray, но он дал ошибку «противоречивый тип возврата» и в обратном трубопроводе ниже дал ошибке «Возвращение NSMutableArray * ____ сильного из функции с несовместимым типом результата ". Переключение на id избавилось от двух ошибок. – user1904273
Вы использовали 'NSArray *' как возвращаемый тип, а не 'NSArray'? Это распространенная ошибка, когда люди сначала изучают Obj-C .. – Steven