Correcting Improperly Formatted EC Private Keys
Yes, it seems related: the private key just misses a 00 value (not a 01 value) in front. The problem that the I2OS primitive seems to round down instead of up if the value is smaller than 520 bits (65 bytes).

Fortunately the public key seems to be OK. The next byte boundary from 521 is 528 (512 + 16 bits). 2 x 528 = 1056 bits. However, the first 8 bits of the bit string indicate the number of bits that are not used out of the next bits. They are always present, and always set to 00 whenever the bit string is used to represent bytes. So they always need to be skipped (check the bits themselves on the site you link to - you'll see they start with 00000100 which is 04 not 00!).

So basically you get to the following simple scheme: get the private key and add as many 00 bytes to the left until you get 528 bits (66 bytes). For the public key just use it straight away, starting at the 04 (uncompressed point). If it doesn't work then maybe iOS expects the X and Y coordinates directly so strip the 04 away.