我在 UITextView 和 UIWebView 之间传递核心数据记录时遇到问题。这背后的想法是将用户输入的 HTML 代码加载到要预览的 Web 视图中。我有一个主要问题,那就是;我的用户传递的 HTML 将在第二次传递(或第二次单击操作按钮)时加载。本质上,UIWebView 显示的是以前的版本,而不是 HTML 样板代码的最新版本。更让我困惑的是,在从 UIWebView 返回时,我设置了删除记录的代码,因此它(记录)甚至不应该存在于第二遍。
这是我在 UITextView 上的代码
@IBAction func previewCompile(sender: AnyObject) {
let appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context: NSManagedObjectContext = appDel.managedObjectContext
let userCode = NSEntityDescription.insertNewObjectForEntityForName("Data", inManagedObjectContext: context)
let request = NSFetchRequest(entityName: "Data")
request.returnsObjectsAsFaults = false
do {
userCode.setValue(codeView.text, forKey: "code")
htmlPreviewCode = (userCode.valueForKey("code") as? String)!
try context.save()
print(htmlPreviewCode)
} catch {
print("No record was saved!")
}
}
这是接收 UIWebView 上的代码
var html = String()
@IBOutlet weak var deleteRecord: UIButton!
@IBAction func goBACK(sender: AnyObject) {
let appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context: NSManagedObjectContext = appDel.managedObjectContext
let request = NSFetchRequest(entityName: "Data")
request.returnsObjectsAsFaults = false
do {
let results = try context.executeFetchRequest(request)
if results.count > 0 {
for result: AnyObject in results {
context.deleteObject(result as! NSManagedObject)
print("Record Deleted")
}
}
} catch {
print("Record failed to delete!")
}
}
@IBOutlet weak var webview: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
html = htmlPreviewCode
webview.loadHTMLString(html, baseURL: nil)
}
任何帮助都非常感谢!这是我的第一个应用程序构建,也是第一次学习编程语言。所以,如果我遗漏了任何主要细节,请原谅我。