【问题标题】:Getting error in conversion of NSNumber to String in swift快速将 NSNumber 转换为 String 时出错
【发布时间】:2016-12-23 17:46:38
【问题描述】:

我正在使用 CoreData 来存储数据。我正在使用 NSNumber 的数据类型存储 ContactNumber。我正在从数据库中检索数据,例如

  let entityDescription =
            NSEntityDescription.entityForName("Retailer",
                inManagedObjectContext: managedObjectContext)

            let request = NSFetchRequest()
            request.entity = entityDescription

            do{
                let results = try managedObjectContext.executeFetchRequest(request)


                for test in results
                {


                    print(test.valueForKey("address") as? String)
                     print(test.valueForKey("classes") as? String)
                     print(test.valueForKey("contactnumber") as! NSNumber)
                     print(test.valueForKey("landmark") as? String)
                    print(test.valueForKey("name") as? String)
                    print(test.valueForKey("outlettype") as? String)
                    print(test.valueForKey("retailername") as? String)
                     print(test.valueForKey("type") as? String)
                    print(test.valueForKey("credit") as? String)


      self.arrayOfData.append((StoringClass(retailersname: (test.valueForKey("retailername") as? String)!, names: (test.valueForKey("name") as? String)!, outlettypes: (test.valueForKey("outlettype") as? String)!, types: (test.valueForKey("type") as? String)!, credits: (test.valueForKey("credit") as? String)!, landmarks: (test.valueForKey("landmark") as? String)!, classestype: (test.valueForKey("classes") as? String)!, addresses: (test.valueForKey("address") as? String)!, contactnumbers:s)))

                }

但我的问题是我将 ContactNumber 设置为“-27790.000000”。 我尝试将 NSNumber 转换为 String,但它对我不起作用。

 let s:String = String(format:"%f",  test.valueForKey("contactnumber")!.doubleValue)

print(s) - output:  “-27790.000000” 

谁能告诉我我做错了什么。

提前致谢

【问题讨论】:

    标签: ios string core-data nsstring nsnumber


    【解决方案1】:

    不要使用String(format:...)。使用NSNumberFormatter

    let f = NSNumberFormatter()
    f.maximumFractionDigits = 0
    let s = f.stringFromNumber(-27790.00)!
    print(s) // Output "-27790"
    

    【讨论】:

      【解决方案2】:

      Swift 4.0 iOS 11.x

      将 NSNumber 转换为字符串 ...

      let temp:NSNumber = 5
      let tempString = temp.stringValue
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多