Как использовать выбрать и где условие в основных данных в цели c - PullRequest
0 голосов
/ 14 декабря 2018

Как я могу использовать условие Select и where в основных данных в Objective-C?

Select empid,empname where depiid=112

Как мне написать этот тип запроса в основных данных?

Заранее спасибо!

Ответы [ 3 ]

0 голосов
/ 14 декабря 2018
AppDelegate *appDelegate = (AppDelegate*)[UIApplication sharedApplication].delegate ;

NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@“TableName” inManagedObjectContext:appDelegate.managedObjectContext];

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];    NSPredicate *predicate = [NSPredicate predicateWithFormat:@“depId == %@",[NSNumber numberWithNumber:num]];

[request setResultType:NSDictionaryResultType];
[request setPropertiesToFetch:
[NSArray arrayWithObjects:@“empId”, @“empName”,  nil]];  
fetchRequest.entity = entityDescription;
fetchRequest.predicate = predicate;    
NSError *error;
NSArray *resultsArray = [appDelegate.managedObjectContext executeFetchRequest:fetchRequest error:&error];
0 голосов
/ 20 декабря 2018

Вы используете предикат для фильтрации результатов, это ваш WHERE

NSFetchRequest *fetchRequest = Emp.fetchRequest;

// WHERE
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"depiid = %d", id];

// ORDER BY
fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"depiid" ascending:YES]];

// LIMIT
fetchRequest.fetchLimit = 1;

NSError *error;
NSArray *objects = [context executeFetchRequest:fetchRequest error:&error];
if (!objects) {
    // Error
}

Emp *emp = objects.firstObject;

NSLog(@"empid: %@, emp.id);
NSLog(@"empname: %@", emp.name);
0 голосов
/ 14 декабря 2018

Используйте NSFetchRequest для выбора строк на CoreData

var objectContext: NSManagedObjectContext? {

        guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else {
            return nil
        }

        return appDelegate.persistentContainer.viewContext
    }



if let context = objectContext {
  let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "EntityName")
  fetchRequest.predicate = NSPredicate(format: "depiid = %d", 112)

            do {
                let results = try context.fetch(fetchRequest)
             print(result)
            } catch let error as NSError {
                print("Could not fetch. \(error), \(error.userInfo)")
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...