我正在尝试保存并使用核心数据检索浮动。该应用程序正在运行,但我得到这些奇怪的随机数(我可以告诉他们在某些容量中是随机的,因为它们每次运行应用程序时都会更改)我的浮点值应该是。例如,-1547077968而不是0.是否可能值不能正确保存到核心数据?我没有正确检索它们吗?此代码来自用户添加书籍的视图控制器:
func createBook() {
let entityDescription = NSEntityDescription.entityForName("Book", inManagedObjectContext: managedObjectContext!)
let book = Book(entity: entityDescription!, insertIntoManagedObjectContext: managedObjectContext)
book.name = bookNameTextField.text
book.author = authorTextField.text
book.numberOfPages = numberOfPagesTextField.text.toInt()!
book.pagesRead = 0.0 as Float
book.timeRead = 0.0 as Float
managedObjectContext?.save(nil)
}
这里我将信息从TableViewController传递到详细信息视图:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showBookDetail" {
let indexPath:NSIndexPath = self.tableView.indexPathForSelectedRow()!
let book: AnyObject = addBookViewController.fetchedResultsController.objectAtIndexPath(indexPath) as! Book
var detailViewController:BookDetailViewController = segue.destinationViewController as! BookDetailViewController
detailViewController.title = book.name
detailViewController.pagesReadText = "\(book.pagesRead)"
detailViewController.timeReadText = "\(book.timeRead)"
}
}
有谁知道为什么会这样?此外,当我通过点击一个单元格进行segue时,应用程序会进行两次分割,因此当我在故事板上只设置一个时,有两个视图控制器在序列中看起来完全相同。我检查了一下,我的segue标识符与我的prepareForSegue块中的标识符匹配。我还确保将pagesRead和timeRead属性设置为浮点数。我为缺少图片而道歉。我没有足够的声望点发布它们。如果有帮助,这是详细视图中的代码:
@IBOutlet weak var pagesReadLabel: UILabel!
@IBOutlet weak var timeReadLabel: UILabel!
var pagesReadText = String()
var timeReadText = String()
override func viewDidLoad() {
super.viewDidLoad()
pagesReadLabel.text = pagesReadText
timeReadLabel.text = timeReadText
}
我不知道为什么IBOutlets按照他们在帖子中的方式进行格式化,但是我们的代码中的格式正确。