2016-08-17 1 views
0

J'utilise CoreData pour stocker les données. Je stocke ContactNumber avec le type de données de NSNumber. Je suis en train de récupérer les données de DB commeObtenir une erreur dans la conversion de NSNumber en chaîne dans swift

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))) 

       } 

Mais mon problème est que je reçois le contactnumber comme « -27790,000000 » comme ça. J'ai essayé de convertir le NSNumber en String mais ça ne marche pas pour moi.

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

print(s) - output: “-27790.000000” 

Quelqu'un peut-il me dire quelle erreur je fais.

ThanksIn Advance

Répondre

2

Ne pas utiliser String(format:...). Utiliser NSNumberFormatter:

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