Jas*_*ien 4 iphone cocoa-touch objective-c
我见过iPhone上的应用程序,如果在3.0上运行,将使用3.0功能/ API,如应用程序内电子邮件编写器,如果在2.x上运行不使用这些功能,并退出应用程序以启动Mail.
这是怎么做到的?
我最初的想法是使用
#ifdef __IPHONE_3_0
Run Code Online (Sandbox Code Playgroud)
但这只有在我真正针对3.0 SDK构建应用程序时才会起作用 - 这会阻止它在2.x手机上运行.
此外,运行这个想法,应用程序必须与3.0 SDK链接,以获得3.0 API ...
我对它是如何实现有点困惑.
您将Base SDK设置为3.0,将Deployment Target设置为2.2.
然后,在NSClassFromString和respondsToSelector语句中包装所有3.0特定(或更高)的方法.
它可以在2.2中的设备上工作,但不能在模拟器中工作.
此方法的优点是您不会将代码绑定到特定版本号 - 只是方法或类是否存在.
这个页面很好地解释了它.
http://www.clarkcox.com/blog/2009/06/23/sdks-and-deployment-targets/
归档时间: |
|
查看次数: |
289 次 |
最近记录: |