I’m running some code that does a [NSDictionary objectForKeyedSubscript:] and it’s crashing on iOS 5, but not iOS 6. I am using xcode 4.5.2 and compiling against the iOS 6.0 SDK.
I assumed that this would work on iOS 5 since it’s just a compiler feature? Am I wrong about that? I can just write my own versions of those functions, but I’m worried that something else is wrong since I would expect it to work.
OK, I’m going to answer my own questions, although I don’t completely understand why it was failing.
Using
objectForKeyedSubscript:and the like works fine running in iOS 5 (as long as it was compiled against the iOS 6 SDK).The problem was I named a function
+(void)loadand makingobjectForKeyedSubscript:calls in this function causes an assert due to the method not being found.This was an naming error on my part because the load method is called before the App is fully running. I have changed the name of my function and all is well.
I assume +load is being called before something with NSDictionary is fully inited. Odd that it works under iOS 6 and just not iOS 5.
Maybe that’s not odd.