2016-09-22 3 views
1

Привет, У меня возникла проблема с основными данными в Swift, это не показывает ошибки, но также ничего не печатает, когда я верю, что он должен возвращать «Joe» + «pass» в консоли. Может ли кто-нибудь помочь?Coredata in swift

import UIKit 
import CoreData 

class ViewController: UIViewController { 



override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    var appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 

    var context:NSManagedObjectContext = appDel.managedObjectContext 

    var newUser = NSEntityDescription.insertNewObjectForEntityForName("Users", inManagedObjectContext: context) as NSManagedObject 

    newUser.setValue("Joe", forKey: "username") 

    newUser.setValue("pass", forKey: "password") 

    do { 
    try context.save() 
    } catch let error { 
     print("Couldn't save user data") 
     print(error) 
    } 

    let request = NSFetchRequest(entityName: "Users") 
     request.returnsObjectsAsFaults = false 

    do { 
     var results = try context.executeFetchRequest(request) 
     results = results as! [NSManagedObject] 
     if results.count > 0 { 
     for results in results { 
      print(results) 
      }} 
    } catch let error as NSError { 
     print(error) 
    } 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


} 
+1

«для получения результатов в результатах» - это действительно ваш код? Потому что это не должно компилироваться. В то же время, перерыв на линии выше и для проверки «результатов» в отладчике, содержит ли что-нибудь? –

+0

Мне было показано это из сообщения здесь вчера в той же проблеме, когда я не исправил свою ошибку, я действительно новичок в Swift, поэтому просто пытаюсь найти свои ноги. Взгляните на это, http://stackoverflow.com/questions/39592609/core-data-issue-swift –

ответ

0

я, наконец, понял, что моя проблема была, я на самом деле не переименованы Entity к «Пользователи» Я сохранил его как «Entity» поэтому, когда я был делает

let newUser = NSEntityDescription.insertNewObjectForEntityForName("Users", inManagedObjectContext: context) as NSManagedObject 
let request = NSFetchRequest(entityName: "Users") 

Я должен был на самом деле заменил оба пользователей с «Сущностью», которая в настоящее время фиксирует мою проблему, спасибо я думаю, за вашу помощь в любом случае!

0
  1. Вы должны создать свой собственный CoreData класс (как подкласс NSManagedObject), а затем создать массив из этого класса.

  2. укажите именно то, что вы хотите распечатать. В вашем случае

    newUser.username

+0

Как это сделать, жаль, что я относительно новичок в этом. –

+0

Перейдите к тому, где вы создали свой класс coredata, выбрали класс, который хотите, и перейдите в редактор -> создайте подкласс nsmanagedobject. Это должно создать класс для вас, который вы можете использовать напрямую –

+0

err, я не верю, что у меня есть базовый класс данных, если только вы не ссылаетесь на «Core_Data_Demo.xcdatamodeld»? и когда я иду файл> новый файл> класс>, он не показывает мне эту опцию? –