Search code examples
objective-cioscocoa-touchnsstringnsdecimalnumber

Converting NSDecimalNumber to NSString


I'm retrieving a key from an object that looks like this:

po obj
{
  TypeID = 3;
  TypeName = Asset;
}

The key value is being retrieved like this:

NSString *typeId = (NSString*)[obj objectForKey:@"TypeID"];

Rather than typeId being an NSString, it is an NSDecimalNumber. Why is that?

How do I convert it to an NSString?


Solution

  • You need to use the stringWithFormat function:

    NSString *typeId = [NSString stringWithFormat:@"%@", [obj objectForKey:@"TypeID"]];
    

    or stringValue:

    NSString *typeId = [[obj objectForKey:@"TypeID"] stringValue];