У меня есть приложение iOS, которое извлекает данные с сервера и сохраняет его с помощью CoreData. У меня есть UITableView, который я пытаюсь заполнить только выделенными частями от данного атрибута данных ядра.данные не записываются в NSMutableArray
Перед заполнением таблицы я просматриваю данные и передаю то, что хочу, в NSMutableArray
. Проблема в том, что когда я нахожу элемент, я хочу, чтобы он не добавлялся в массив.
Я объявляю массив в моем .h
файл как так ...
@property (strong, nonatomic) NSMutableArray *theNewSource;
и обобщать его в .m
файле
@synthesize theNewSource = _theNewSource;
Вот метод ...
-(NSMutableArray *)setDataSourceArray
{
for(int i = 0; i < rcount ; i++)
{
NSIndexPath *countingInteger = [NSIndexPath indexPathForItem:i inSection:0];
NSManagedObject *object = [self.fetchedResultsController objectAtIndexPath:countingInteger];
NSString *action = [object valueForKey:@"theActionName"];
if (![action isEqual:@"Login"])
{
[_theNewSource addObject:action];
}
}
NSLog(@"the array is now %@",_theNewSource);
return _theNewSource;
}
Я установил точку останова в строке [_theNewSource addObject:action]
. Я могу видеть на консоли, что переменная action
имеет значение, но она никогда не добавляется в массив _theNewSource
... Я уверен, что это Objective C 101, но я не могу понять. Пожалуйста помоги!
В стороне - это кажется большой работой, когда вы можете установить это как предикат в запросе на выборку NSFetchedResultsController. – Abizern
Abizern, я просмотрел некоторые из документации CoreData, потому что думал, что есть способ сделать это с помощью запроса на выборку, но я пропустил предикат. Jsdodgers исправил мою проблему, но я хотел бы избежать этого метода, если бы мог. Не могли бы вы указать мне пример использования предиката. Атрибут CoreData, из которого я выхожу, - это «theActionName», как вы можете видеть. Когда я извлекаю данные из атрибута, я просто хочу исключить действия «Вход», которые могут использовать предикат? – Ben
Дубликат около 100 других. Должен создать массив. –