2014-10-28 3 views
0

Очень простой вопрос с iOS. У меня есть таблица, созданный (m_historytable) с четырьмя колоннами, созданных в форме подвидов (счетчика, даты, имя и результат). Каждый раз, когда приложение запускает новую строку, она добавляется в верхнюю часть таблицы. Мне нужно прочитать последнее добавленное имя и передать его UILabel. Я бы ожидал, что это заявление будет выглядеть примерно так:Прочитать конкретные данные в таблице

m_last_name.text = [NSString stringWithFormat:@"%d", ??? ]; 

Мой вопрос в том, что мне нужно заменить ??? с.

+0

Где вы храните последнее добавленное имя? Есть ли текстовое поле в строке таблицы? –

+0

Я храню следующим образом: – user3662579

+0

Каждый раз, когда процесс запускается, он вставляет новый объект в таблицу и сохраняет информацию для этой записи следующим образом: 'APPDELEGATE.m_historytable = (HistoryData *) [ NSEntityDescription insertNewObjectForEntityForName: @ "HistoryData" inManagedObjectContext: APPDELEGATE.managedObjectContext]; APPDELEGATE.m_historytable.name = g_name; ' – user3662579

ответ

0

Вы должны изучать CoreData более подробно. Для получения данных из ваших основных записей данных используйте следующий код.

Создание функции в классе, чтобы получить контекст

- (NSManagedObjectContext *)managedObjectContext { 
NSManagedObjectContext *context = nil; 
id delegate = [[UIApplication sharedApplication] delegate]; 
if ([delegate performSelector:@selector(managedObjectContext)]) { 
    context = [delegate managedObjectContext]; 
} 
return context; 
} 

Теперь, чтобы получить данные из основных объектов данных

NSManagedObjectContext *context = [self managedObjectContext]; 
NSMutableArray *historyDataArray = [[NSMutableArray alloc]init]; 
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"HistoryData"]; 
historyDataArray = [[context executeFetchRequest:fetchRequest error:nil] mutableCopy]; 

как только вы получите массив, вы можете выбрать самый последний элемент, как это

NSManagedObject *object = [historyDataArray objectAtIndex:historyDataArray.count-1]; 

Затем вы можете передать любое значение в UILabel следующим образом:

m_last_name.text = [[NSString stringWithFormat:@"%@",[object valueForKey:@"name"] ]; 
+0

просто отлично! Большое спасибо за предоставленное решение и за вашу рекомендацию. – user3662579

0

Необходимо заменить целочисленным значением, так как %d указывает целое число. См ниже образца: -

int count=1; 
m_last_name.text = [NSString stringWithFormat:@"%d",count]; 

Для более см это example

+0

Спасибо Hussain. Тем не менее, моя основная проблема заключается в том, как читать конкретные данные, которые мне нужны из таблицы (то есть последнее добавленное имя), и не столько о том, как передать ее впоследствии в UILabel. Спасибо. – user3662579

+0

Хорошо, вам нужно заменить некоторые значения. Знаете ли вы, что нужно заменить? –

+0

Что я не знаю, так это то, как читать значение, которое хранится в первой строке таблицы для столбца/подвид «имя». Спасибо. – user3662579

0

Вы можете пройти туда текущую дату с [NSString stringWithFormat:@"%@",[NSDate date]];

Смежные вопросы