Hi,
i'm wondering if anyone can help me with this issue.
We have an app which support ios 5.1.1 to 9.2, is 64 bit, objective-c without arc, and has no problems, until we hit the ipad pro (currently running the simulator since we do not have an actual device).
There i'm getting all kinds of bad acces exceptions (just on starting the app) . My current crash is on a name string which has been initialized and has not changed, which suddenly doesn't point to a proper value
Also in the same collection i'm seeing proper strings with correct values and i'm seeing things like a strings which should have a predefined name suddenly pointing to stuff like: "/System/Library/Frameworks/CoreTelephony.framework/CoreTelephony:CTRadioAccessTechnologyCDMAEVDORev0" and other unexplainable values.
I can only come to the conclusion that the memory or pointer is corrupt. Which is really weird since nothing changed code wise (also the app runs fine on other simulators)
has anybody else had this problem?
does anybody have a fix?
thanks
Two things:
It’s easy for incorrect code to consistently work on one platform and fail on another. The classic example of this is NSDate, which is a tagged pointer on some platforms and an actual object on others. If your code over-releases an NSDate, it’ll work fine on the former but cause mysterious memory management errors on the latter.
This sort of thing can change from release to release of the OS, and vary by hardware platform.
So the argument My code worked before so it must be the OS’s fault isn’t valid. OTOH, that doesn’t mean it’s not an OS problem (-: The only way to be sure is to debug the problem to the point where you understand the reason for the failure.
If you’re seeing a string disappearing out from underneath a ‘retain’ property, you should look at the malloc history of that string to see who released it.
Share and Enjoy
—
Quinn "The Eskimo!"
Apple Developer Relations, Developer Technical Support, Core OS/Hardware
let myEmail = "eskimo" + "1" + "@apple.com"