我的快捷代码将3个名称保存到核心数据实体“用户名”。我想使用uitextfield委托来提取特定的字符串。因此,当用户在文本字段中输入2时。在标签labelName上应出现名称jessica Biel。因此,用户在文本字段中输入数字,字符串将出现在标签上。如果为1,则将第一个NSManagedObject输入到核心数据实体username中。链接到项目https://github.com/redrock34/jessicaBiel
import UIKit
import CoreData
class ViewController: UIViewController,uitextfielddele {
@IBOutlet var labelName : UILabel!
@IBOutlet var enterT : UITextField!
// MARK: Variables declearations
let appDelegate = UIApplication.shared.delegate as! AppDelegate //Singlton instance
var context:NSmanagedobjectcontext!
// MARK: View Controller life cycle methods
override func viewDidLoad() {
super.viewDidLoad()
openDatabse()
}
// MARK: Methods to Open,Store and Fetch data
func openDatabse()
{
context = appDelegate.persistentContainer.viewContext
let entity = NSEntityDescription.entity(forEntityName: "Users",in: context)
let newUser = NSManagedObject(entity: entity!,insertInto: context)
let newUser2 = NSManagedObject(entity: entity!,insertInto: context)
let newUser3 = NSManagedObject(entity: entity!,insertInto: context)
saveData(UserDBObj: newUser,UserDBObj2: newUser2,UserDBObj3: newUser3)
}
func saveData(UserDBObj:NSManagedObject,UserDBObj2:NSManagedObject,UserDBObj3:NSManagedObject)
{
UserDBObj.setvalue("kim kardashian",forKey: "username")
UserDBObj2.setvalue("jessica biel",forKey: "username")
UserDBObj3.setvalue("Hailey Rienhart",forKey: "username")
print("Storing Data..")
do {
try context.save()
} catch {
print("Storing data Failed")
}
fetchData()
}
func fetchData()
{
print("Fetching Data..")
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")
request.returnsObjectsAsFaults = false
do {
let result = try context.fetch(request)
for data in result as! [NSManagedObject] {
let username = data.value(forKey: "username") as! String
print("User Name is : "+username)
}
} catch {
print("Fetching data Failed")
}
}
}