2016-08-17 62 views
0

我正在使用CoreData來存儲數據。我正在使用NSNumber的數據類型存儲ContactNumber。我從數據庫中檢索數據就像在swift中將NSNumber轉換爲String的錯誤

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轉換爲字符串,但它不適用於我。

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

print(s) - output: 「-27790.000000」 

有誰能告訴我我在做什麼錯誤。

ThanksIn提前

回答

2

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

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