所以我在Realm中有一个非常简单的Book模型
class Book: Object {
dynamic var title: String!
dynamic var author: String!
}
Run Code Online (Sandbox Code Playgroud)
而我正试图在帮助类中检索我的所有书籍:
var userBookLibrary = [Book]()
let realm = try! Realm()
func getBooksFromLocalDatastore() {
userBookLibrary = realm.objects(Book)
}
Run Code Online (Sandbox Code Playgroud)
这一行:
userBookLibrary = realm.objects(Book)
Run Code Online (Sandbox Code Playgroud)
抛出标题中的错误.
我疯了,或者这是不是正是什么境界文件告诉我们做什么?
我无法异步从Alamofire请求中检索数据.
class BookGetter {
static let instance = BookGetter()
func getBook(bookId: String) -> Book {
let rootUrl = "https://www.someusefulbookapi.com/bookid=?"
let url = rootUrl + bookId
var title = ""
Alamofire.request(.GET, url).response { response in
let jsonDict = JSON(data: response.2!)
title = String(jsonDict["items"][0]["volumeInfo"]["title"])
}
let book = Book(title: title)
print(book.title)
return book
}
}
Run Code Online (Sandbox Code Playgroud)
输出print(book.title)是"",我明白这是因为print语句在请求返回之前运行.
如何book仅在使用请求中的数据实例化时才能返回实例?
let animal["legs"] = currentAnimal.legCount
let animal["canFly"] = currentAnimal.canFly
let animal["chicken"] = currentAnimal.isSoonToBeNugget
let anim....
Run Code Online (Sandbox Code Playgroud)
其中之一是nil.我有大约10个这些并且想要将每个值打印到控制台而不必去
print(animal["legs"])
print(animal["canFly"])
print(animal["chicken"])
print(anim....)
Run Code Online (Sandbox Code Playgroud)
最简洁的方法是什么?