Swift 有核心数据

Swift with core data

我刚开始使用 swift 和核心数据。我有一个实体 invoiceList 并创建了一些属性(一些字符串、整数 32 和小数)。

我创建了一个 edit/add viewcontroller,但现在我被困在添加新项目部分。我收到错误 "cannot assign a value of type string? to a value of type NSNumber?"

我尝试了多种方法将 vat 文本字段转换为 Int 但没有成功。

我试过了

    var invoiceVATString = nItem.valueForkey("invoiceVAT") as String
    invoiceVATString = vat.text

这里是 newItem 函数

func newItem(){
    let context = self.context
    let ent = NSEntityDescription.entityForName("invoiceList", inManagedObjectContext: context)

    let nItem = InvoicesList(entity: ent!, insertIntoManagedObjectContext: context)

    nItem.invoiceShopName = shopName.text
    nItem.invoiceDescr = productDescription.text
    nItem.invoiceVAT = vat.text<-cannot assign a value of type string? to a value of type NSNumber?
    nItem.invoiceNumber = orderNumber.text<-cannot assign a value of type string? to a value of type NSNumber?

}

现在我知道 invoiceVAT 是 decimal 类型的核心数据属性,而 vat 是文本字段。我该如何解决这个问题?

这是一个使用数字格式化程序从字符串中检索 NSNumber 的简单示例

let aNumberString = "1235.45"

let numberFormatter = NSNumberFormatter()

if let theNumber = numberFormatter.numberFromString(aNumberString) {

println(theNumber)
}