Я новичок в iOS, и перед вами стоит проблема сохранения восстановленных данных массива в данных Core. Как показан в ImageКак сохранить данные о перестановке массива в основных данных в Objective C
У меня есть выбор Одна кнопки из представления таблицы и сохранить значение в основных данных
Для этого моего кода, как это
NSString *[email protected]"";
NSString *[email protected]"";
NSManagedObjectContext *context = [self managedObjectContext];
NSError *error;
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"AuditPost" inManagedObjectContext:context]];
// NSError *error = nil;
NSArray *results = [context executeFetchRequest:request error:&error];
NSLog(@"Result =%@",results);
int imageSize = imgData.length;
NSLog(@"size of image in KB: %d ", imageSize/1024);
int OCS=imageSize/1024;
NSLog(@"OCS Image Size =%d",OCS);
if(OCS<2)
{
[email protected]"";
}
ComplareArray=[devices valueForKey:@"checkpointid"];
BOOL contains = [ComplareArray containsObject:String2];
if(contains == NO)
{
if (self.device) {
// Update existing device
[device setValue:Audit forKey:@"auditnameId"];
[device setValue:String forKey:@"checklistid"];
[device setValue:String2 forKey:@"checkpointid"];
[device setValue:FailString forKey:@"failreason"];
[device setValue:WarningString forKey:@"warningreason"];
[device setValue:AuditStartDate forKey:@"starttimedate"];
[device setValue:userid forKey:@"userid"];
[device setValue:AuditImageString forKey:@"auditimage"];
NSError *error = nil;
// Save the object to persistent store
if (![context save:&error]) {
NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}
} else {
// Create a new device
NSManagedObject *newDevice = [NSEntityDescription insertNewObjectForEntityForName:@"AuditPost" inManagedObjectContext:context];
[newDevice setValue:Audit forKey:@"auditnameId"];
[newDevice setValue:String forKey:@"checklistid"];
[newDevice setValue:String2 forKey:@"checkpointid"];
[newDevice setValue:FailString forKey:@"failreason"];
[newDevice setValue:WarningString forKey:@"warningreason"];
[newDevice setValue:AuditStartDate forKey:@"starttimedate"];
[newDevice setValue:userid forKey:@"userid"];
[newDevice setValue:AuditImageString forKey:@"auditimage"];
NSError *error = nil;
// Save the object to persistent store
if (![context save:&error]) {
NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}
}
}
else
{
NSError *error = nil;
// Save the object to persistent store
if (![context save:&error]) {
NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}
NSManagedObjectContext *context = [self managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"AuditPost" inManagedObjectContext:context]];
NSArray *results = [context executeFetchRequest:request error:&error];
NSManagedObject* favoritsGrabbed = [results objectAtIndex:CurrentIndexPath];
[favoritsGrabbed setValue:String forKey:@"checklistid"];
// Save the object to persistent store
if (![context save:&error]) {
NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}
}
//example reload table
dispatch_async(dispatch_get_main_queue(), ^{
[Audittable reloadData];
});
Чтобы сохранить все массив в основных данных Я использую код, подобный этому
if (self.device)
{
// Update existing device
[device setValue:Audit forKey:@"auditnameId"];
[device setValue:[NSString stringWithFormat:@"%@",Passarray[i]] forKey:@"checklistid"];
[device setValue:[NSString stringWithFormat:@"%@",CheckpointNameIDArray[i]] forKey:@"checkpointid"];
[device setValue:FailString forKey:@"failreason"];
[device setValue:WarningString forKey:@"warningreason"];
[device setValue:AuditStartDate forKey:@"starttimedate"];
[device setValue:userid forKey:@"userid"];
[device setValue:[NSString stringWithFormat:@"%@",AuditImageString] forKey:@"auditimage"];
NSError *error = nil;
// Save the object to persistent store
if (![context save:&error]) {
NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}
}
else
{
// Create a new device
NSManagedObject *newDevice = [NSEntityDescription insertNewObjectForEntityForName:@"AuditPost" inManagedObjectContext:context];
[newDevice setValue:Audit forKey:@"auditnameId"];
[newDevice setValue:[NSString stringWithFormat:@"%@",Passarray[i]] forKey:@"checklistid"];
[newDevice setValue:[NSString stringWithFormat:@"%@",CheckpointNameIDArray[i]] forKey:@"checkpointid"];
[newDevice setValue:FailString forKey:@"failreason"];
[newDevice setValue:WarningString forKey:@"warningreason"];
[newDevice setValue:AuditStartDate forKey:@"starttimedate"];
[newDevice setValue:userid forKey:@"userid"];
[newDevice setValue:[NSString stringWithFormat:@"%@",AuditImageString] forKey:@"auditimage"];
NSError *error = nil;
// Save the object to persistent store
if (![context save:&error]) {
NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}
}
}
for (int i=0; i<PassarrIndexPaths.count; i++)
{
AuditNextTableViewCell *cell = [Audittable cellForRowAtIndexPath:[PassarrIndexPaths objectAtIndex:i]];
DataModel *model = [arrData objectAtIndex:i];
model.strSelected = @"P";
[cell.passbtn setBackgroundColor:[UIColor greenColor]];
[cell.failbtn setBackgroundColor:[UIColor lightGrayColor]];
[cell.wipbtn setBackgroundColor:[UIColor lightGrayColor]];
[cell.nabtn setBackgroundColor:[UIColor lightGrayColor]];
}
// Passbtn.backgroundColor=[UIColor greenColor];
// NAbtn.backgroundColor=[UIColor lightGrayColor];
[Audittable reloadData];
Как и в Image Если я нажимаю на Марк Отложен как PASS это сохранить remaning элемента массива в основных данных, которые не select.For выбора Я использую код, как этого
NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"AuditPost"];
self.devices = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];
for (int i=0; i<PassarrIndexPaths.count; i++)
{
AuditNextTableViewCell *cell = [Audittable cellForRowAtIndexPath:[PassarrIndexPaths objectAtIndex:i]];
DataModel *model = [arrData objectAtIndex:i];
if([model.strSelected isEqualToString:@"P"])
{
}
else if ([model.strSelected isEqualToString:@"W"])
{
}
else if ([model.strSelected isEqualToString:@"F"])
{
}
else if ([model.strSelected isEqualToString:@"NA"])
{
}
else if ([model.strSelected isEqualToString:@"NAA"])
{
}
else
{
model.strSelected = @"PA";
[cell.passbtn setBackgroundColor:[UIColor greenColor]];
[cell.failbtn setBackgroundColor:[UIColor lightGrayColor]];
[cell.wipbtn setBackgroundColor:[UIColor lightGrayColor]];
[cell.nabtn setBackgroundColor:[UIColor lightGrayColor]];
}
Я перед проблемой является что, если я сохраню некоторые данные в основных данных then.How, чтобы сохранить восстановление данных массива в основных данных. Кто-нибудь сделал это. Спасибо в Adnavce!
Что вы имеете в виду остальные данные? –
Создайте модель объекта управления и сохраните контекст объекта управления. – Jitendra
@Mukesh Как и в изображении, я сохранил одну строку из массива в основных данных. На клик Select all As Pass Мне нужно сохранить remaning данные массива, пропустить первый индекс и сохранить другое значение массива в основных данных. возможно? – Muju