我有一个带有Core Data的Swift应用程序,它存储以下内容:
我有一个ViewController来正确设置收集此信息,并将此信息存储在核心数据中。所有3个属性都有一个带有保存按钮的文本字段并保存。
我有另一个Storyboard ViewController,它有一个用于“key”的Textfield和一个用于验证密钥的Button以及一个标签,用于显示密钥是否被接受。 当用户输入正确的密钥时,出现“继续按钮”
我的问题: 此时,我的应用程序检索信息并在我的控制台中显示保存的信息。但是,它不会专门检查密钥,并允许任何信息到“继续”按钮。 如何调用Attribute而不是整个实体并使用该信息继续? 我假设我必须访问实体来检索属性,但我该怎么做?
以下是验证按钮的代码:
@IBAction func verifyKey()
{
var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
var context: NSManagedObjectContext = appDel.managedObjectContext!
var request = NSFetchRequest(entityName: "User")
request.returnsObjectsAsFaults = false
var results:NSArray = context.executeFetchRequest(request, error: nil)!
if (results.count > 0)
{
btnContinueAppears.hidden = false
keyLabel.text = "Key Accepted"
keyLabel.resignFirstResponder()
keyLabel.textColor = UIColor.greenColor()
for res in results
{
println(res)
}
}
else
{
btnContinueAppears.hidden = true
keyLabel.text = ("Key Denied, Access Denied")
keyLabel.resignFirstResponder()
keyLabel.textColor = UIColor.redColor()
println("0 Results Returned...Potential Error")
}
}
答案 0 :(得分:0)
只需从数组中访问该对象,然后像这样访问其属性
@IBAction func verifyKey()
{
var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
var context: NSManagedObjectContext = appDel.managedObjectContext!
var request = NSFetchRequest(entityName: "User")
request.returnsObjectsAsFaults = false
var results:NSArray = context.executeFetchRequest(request, error: nil)!
if (results.count > 0)
{
let aResult = results.first! as NSManagedObject
btnContinueAppears.hidden = false
keyLabel.text = "Key Accepted"
keyLabel.resignFirstResponder()
keyLabel.textColor = UIColor.greenColor()
for res in results as [NSManagedObject]
{
let textColor = res.valueForKey("color")
}
}
else
{
btnContinueAppears.hidden = true
keyLabel.text = ("Key Denied, Access Denied")
keyLabel.resignFirstResponder()
keyLabel.textColor = UIColor.redColor()
println("0 Results Returned...Potential Error")
}
}
如果尚未将类分配给实体,则应使用kvc getter方法使用valueForKey:来访问属性的值。否则,您可以简单地使用类和访问属性,例如访问常规类的属性。
希望它有所帮助。
答案 1 :(得分:0)
我已经通过添加以下内容解决了这个问题:
request.predicate = NSPredicate(format: "key = %@", "" + keyEnter.text)
我在:
之后添加了它request.returnsObjectsAsFaults = false
这工作正在检查数据库中的密钥。
恭敬地感谢您的反馈。 :)