【发布时间】:2015-12-04 00:40:41
【问题描述】:
我将数组保存到模型中,保存数据时未使用 Optional (...) 包裹,但是在读取数据时,我得到 Optional(...) 包裹它。感谢您的帮助和耐心,因为我是 Swift 新手。
这是向模型添加值时的println:
saveOperativesInModel: Test Name
这是从模型中读取值时的println:
getOperativesFromModel: Optional(Test Name)
为什么 Swift 会在字符串中添加“Optional(xxx)”?
这是精简后的代码:
func saveOperativesInModel() {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext!
let entity = NSEntityDescription.entityForName("Operatives", inManagedObjectContext: managedContext)
var item: NSManagedObject!
if let operativesList = self.operativesResult?.operativesList {
self.operativesTable.removeAll()
for itemInArray in operativesList {
item = NSManagedObject(entity: entity!, insertIntoManagedObjectContext:managedContext)
item.setValue(itemInArray.firstName, forKey: "firstName")
var error: NSError?
if !managedContext.save(&error) {
} else {
self.operativesTable.append(item!)
println("saveOperativesInModel: \(itemInArray.firstName)")
}
}
}
let fetchRequest1: NSFetchRequest! = NSFetchRequest(entityName:"Operatives")
let fetchedResults = managedContext.executeFetchRequest(fetchRequest1, error: &error) as? [NSManagedObject]
if let operativesTable = fetchedResults {
if operativesTable.count > 0 {
for item in operativesTable {
let operative: Operative! = Operative()
operative.firstName = String (stringInterpolationSegment: item.valueForKey("firstName"))
println("getOperativesFromModel: \(operative.firstName)")
}
}
}
}
【问题讨论】:
标签: ios swift optional word-wrap