skip to Main Content

I have a JSONDecoder that works on simulator, but it can’t decode the same data when running on real device, please help.
This error will happen when running on real device:

dataCorrupted(Swift.DecodingError.Context(
  codingPath: [_JSONKey(stringValue: "Index 0", intValue: 0), 
  CodingKeys(stringValue: "market_cap", intValue: nil)], 
  debugDescription: "Parsed JSON number <16541228553> does not fit in Int.", 
  underlyingError: nil))

I think 16541228553 should fit in Int?
It fits when running on simulator.
Thanks.

2

Answers


  1. There is very little information about the question but I guess the market_cap property in your model is Int.

    Changing with Decimal would fix the problem

     class YourClass: Codable {
       var market_cap: Decimal
       ....
     }
    
    Login or Signup to reply.
  2. You note in the tags that this is an Apple Watch. I’m guessing it’s a Series 3, which is a 32-bit platform. This is a 34-bit number, so it doesn’t fit.

    The Simulator does not emulate hardware. It’s a 64-bit Mac app that links libraries that match the device SDK. So on Simulator, it doesn’t overflow.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search