I'm about to release an app that uses ARC so it only works properly on phones with IOS 5. I know that I can state in the description it requires IOS 5 but what happens if someone with IOS 4.3 or lower tries to download it?
Does apple check to see if the user has IOS 5 installed? If not I am thinking of checking when the app is launched and if they do not have it installed the a message pops up explaining that they need IOS 5.
I'm about to release an app that uses ARC so it only works properly on phones with IOS 5. I know that I can state in the description it requires IOS 5 but what happens if someone with IOS 4.3 or lower tries to download it?
Does apple check to see if the user has IOS 5 installed? If not I am thinking of checking when the app is launched and if they do not have it installed the a message pops up explaining that they need IOS 5.
Has anyone else done anything similiar?
I assume it would be in the SDK for UIDevice currentDevice or something similar. If I were you that's where I'd look.
I'm about to release an app that uses ARC so it only works properly on phones with IOS 5. I know that I can state in the description it requires IOS 5 but what happens if someone with IOS 4.3 or lower tries to download it?
Does apple check to see if the user has IOS 5 installed? If not I am thinking of checking when the app is launched and if they do not have it installed the a message pops up explaining that they need IOS 5.
Has anyone else done anything similiar?
Set the project and target iOS Deployment Target to 5.0. They won't be able to download your app unless they have iOS 5.0 or higher if you do this.
I'm about to release an app that uses ARC so it only works properly on phones with IOS 5. I know that I can state in the description it requires IOS 5 but what happens if someone with IOS 4.3 or lower tries to download it?
Does apple check to see if the user has IOS 5 installed? If not I am thinking of checking when the app is launched and if they do not have it installed the a message pops up explaining that they need IOS 5.
Has anyone else done anything similiar?
That's the great thing about the appStore. You don't have to check for these things. No need to check for
iOS version, and no need to check for iOS device model type either.
I don't recommend using any code checks like above. I think that's only useful if you're trying to make
a program backwards compatible. If not, just focus on running your program as it is.
Set the project and target iOS Deployment Target to 5.0. They won't be able to download your app unless they have iOS 5.0 or higher if you do this.
Thanks, I was hoping that would be the answer. Do you know if there is anywhere reliable to find stats on what percentage of devices are running the various IOS?
That's the great thing about the appStore. You don't have to check for these things. No need to check for
iOS version, and no need to check for iOS device model type either.
I don't recommend using any code checks like above. I think that's only useful if you're trying to make
a program backwards compatible. If not, just focus on running your program as it is.
That's really useful to know. I was worrying about this but your answer was very helpful.
That's really useful to know. I was worrying about this but your answer was very helpful.
Well, if you expect your app will be installed on a jailbroken device, then you can do whatever
you want to keep your app from crashing. They don't play by the same rules.
I'm about to release an app that uses ARC so it only works properly on phones with IOS 5. I know that I can state in the description it requires IOS 5 but what happens if someone with IOS 4.3 or lower tries to download it?
Does apple check to see if the user has IOS 5 installed? If not I am thinking of checking when the app is launched and if they do not have it installed the a message pops up explaining that they need IOS 5.
Has anyone else done anything similiar?
Just a quick note that ARC is a compile-time feature, not run-time, so apps that use ARC will work under iOS4.
I'm bringing out an app using ARC that still works in 4.3. Just make sure you compile the app against the 5.0 SDK but set your deployment target to 4.3.
ARC itself will work on iOS4, but not the "zeroing weak references", that automatically sets dead object pointers to nil.
That's interesting. I quite often use if(!object) or if(object==nil) in my code and haven't seen a problem. Does that mean that the result of that is indeterminate?
I'm a bit confused by weak and strong references - do you know of any good material I can read to better understand them, especially with ARC in mind?
That's interesting. I quite often use if(!object) or if(object==nil) in my code and haven't seen a problem. Does that mean that the result of that is indeterminate?
I'm a bit confused by weak and strong references - do you know of any good material I can read to better understand them, especially with ARC in mind?
Colin C
This is related only to weak properties / objects. Strong ones are our previous "retain", a property/object that will stick around as long as you use it. weak works more like a simple pointer or a "assign" property, having a pointer to it makes no effect on keeping it alive (thus the danger of later in execution, you try to access it and the pointed object no longer exists and crash)
On iOS5, ARC is able to nullify dead object pointers when they are released, on iOS 4 , not.
You should use weak/assign pointers to avoid retain cycles (a parent that has a strong/retain property to a child, and the child also needs a pointer to the parent -- delegates are the most common -- , so the delegate property MUST be weak/assign or else both objects will never be released)
So, you cant use the "weak" feature if you target iOS4, you should use the old "assign" type and housekeep yourself to make sure you never call a dead pointer, on viewDidUnload / dealloc, set all "assign" pointers to nil so they can't call you back after death.