我使用sdk 6.1编译了我的应用程序,并将部署目标设置为iOS 4.3。这是否意味着我的应用程序可以在4.3上运行?我没有这样的设备,实际上无法测试它,但我想知道该应用程序是否适用于4.3。
答案 0 :(得分:1)
将部署目标设置为iOS 4.3可确保您的应用支持iOS 4.3及更高版本 ,除非您不使用仅支持更高版本(如ARC,Storyboard,autolayout 。最好在设备或模拟器上进行测试。您可以通过Xcode下载iOS4.3模拟器
Xcode-> preferances - >下载 - > iOS 4.3模拟器
答案 1 :(得分:1)
如果您认为您使用的课程可能在其他ios版本中不可用,那么您可以使用
检查相同的课程使用NSClassFromString函数。将类的名称作为字符串传递给此方法。
如果此函数的返回值为nil,则该类在运行您的应用程序的设备上不可用;
否则,该类可在设备上使用,您可以继续使用它,如您所愿。
以下是一个例子:
i am checking for NSJSONSerialization class, similarly you can check for your class also,
if (NSClassFromString(@"NSJSONSerialization") != nil) {
/* You can use this class */
[NSJSONSerialization JSONObjectWithData:... /* Put data here */
options:... /* Put options here */
error:...]; /* Handle errors here */
} else {
/* That class is not available */
}
答案 2 :(得分:0)
您可以在iOS版本大于或等于您设置的部署目标的任何设备上运行。
因此请记住,您没有使用该版本不支持的任何框架或功能。
希望它对你有所帮助。
答案 3 :(得分:0)
您可以随时在4.3模拟器上测试您的应用。选择“Scheme”菜单下的iPhone 4.3 Simulator
(您可以在Xcode顶部的“Run”“Stop”按钮的右侧找到它)。如果您无法找到4.3模拟器的选项,那么您需要转到Xcode->Preference->Downloads->Components->iOS 4.3 Simulator
有时xcode不会抱怨6.1中可用的新功能(如autolayout等)的使用,但会在4.3上运行时使应用程序崩溃。
答案 4 :(得分:0)
/**
* Example usage:
* If you want to see if you're using methods that are only defined in iOS 4.0 and lower
* then you would use the following. Replace the __IPHONE_4_0 with whatever other macro
* you require. See Availability.h for iOS versions these relate to.
*
* YourProjectPrefixHeader.pch:
* #define __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED __IPHONE_4_0
* #import "ThisFile.h"
*
* // The rest of your prefix header as normal
* #import <UIKit/UIKit.h>
*/
#import <Availability.h>
#define __AVAILABILITY_TOO_NEW __attribute__((deprecated("TOO NEW!")))
#ifndef __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED
#define __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED __IPHONE_OS_VERSION_MIN_REQUIRED
#endif
#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_OS_VERSION_MIN_REQUIRED
#error You cannot ask for a soft max version which is less than the deployment target
#endif
#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_2_0
#undef __AVAILABILITY_INTERNAL__IPHONE_2_0
#define __AVAILABILITY_INTERNAL__IPHONE_2_0 __AVAILABILITY_TOO_NEW
#endif
#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_2_1
#undef __AVAILABILITY_INTERNAL__IPHONE_2_1
#define __AVAILABILITY_INTERNAL__IPHONE_2_1 __AVAILABILITY_TOO_NEW
#endif
#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_2_2
#undef __AVAILABILITY_INTERNAL__IPHONE_2_2
#define __AVAILABILITY_INTERNAL__IPHONE_2_2 __AVAILABILITY_TOO_NEW
#endif
#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_3_0
#undef __AVAILABILITY_INTERNAL__IPHONE_3_0
#define __AVAILABILITY_INTERNAL__IPHONE_3_0 __AVAILABILITY_TOO_NEW
#endif
#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_3_1
#undef __AVAILABILITY_INTERNAL__IPHONE_3_1
#define __AVAILABILITY_INTERNAL__IPHONE_3_1 __AVAILABILITY_TOO_NEW
#endif
#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_3_2
#undef __AVAILABILITY_INTERNAL__IPHONE_3_2
#define __AVAILABILITY_INTERNAL__IPHONE_3_2 __AVAILABILITY_TOO_NEW
#endif
#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_4_0
#undef __AVAILABILITY_INTERNAL__IPHONE_4_0
#define __AVAILABILITY_INTERNAL__IPHONE_4_0 __AVAILABILITY_TOO_NEW
#endif
#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_4_1
#undef __AVAILABILITY_INTERNAL__IPHONE_4_1
#define __AVAILABILITY_INTERNAL__IPHONE_4_1 __AVAILABILITY_TOO_NEW
#endif
#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_4_2
#undef __AVAILABILITY_INTERNAL__IPHONE_4_2
#define __AVAILABILITY_INTERNAL__IPHONE_4_2 __AVAILABILITY_TOO_NEW
#endif
#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_4_3
#undef __AVAILABILITY_INTERNAL__IPHONE_4_3
#define __AVAILABILITY_INTERNAL__IPHONE_4_3 __AVAILABILITY_TOO_NEW
#endif
#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_5_0
#undef __AVAILABILITY_INTERNAL__IPHONE_5_0
#define __AVAILABILITY_INTERNAL__IPHONE_5_0 __AVAILABILITY_TOO_NEW
#endif