我正在为我的应用完成iCloud功能,但无法解决一个问题: 由于我使用了一些新的5.0功能,如NSFileCoordinator,因为“dyld:找不到符号: _OBJC_CLASS _ $ _ NSFileCoordinator”。 如何为构建4.3版本“解包”一些文件(具有iCloud方法)? 在此先感谢!如何使用适用于iOS 4.3的iOS 5.0方法构建应用程序?
1
A
回答
4
0
我认为最好关闭4.3版本的iCloud功能。你可以在运行时检查iOS版本。在你的特定情况下,你可以检查NSFileCoordinator
类的存在与NSClassFromString()
函数,但我很确定在互联网上有更多像样的方法来完成这个。
2
只取出来源copilation的:
- 点击您的项目文件。
- 转到“构建阶段”。
- 展开“编译源代码”。
- 选择您不想要的文件,然后按部分底部的 处的“ - ”按钮。
或者您可以从项目中删除它(只是删除引用而不是删除文件),它也会将其从本节中删除。
或者你可以创建预处理宏来检查用户是否可以运行功能
// System Versioning Preprocessor Macros
#define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)
/* Usage
if (SYSTEM_VERSION_LESS_THAN(@"4.0")) {
...
}
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"3.1.1")) {
...
}*/
有了这个,你可以检查用户使用什么SYSTEN版本,并且仅建立5.0,但如果它是一个小于5.0的版本,可以使用代码。
0
你可以做一个新的建设目标,并设置一个编译预处理宏象NO_CLOUD然后用
#ifdef NO_CLOUD ... code here ...#else ... cloud code here ... #endif
0
你必须薄弱环节的framwork的(当你添加一个框架,以项目只需将其设置为可选不需要)。
在H文件你必须输入唯一的,如果你有iOS 5的
#if defined(__IPHONE_5_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_5_0
#import <Twitter/Twitter.h>
#import <Accounts/Accounts.h>
#endif
和你必须尝试从字符串和测试创建类,看看你是否有一流的M档。同时测试顶部看看班级是否对选择器做出反应。
Class TWTweetComposeViewControllerClass = NSClassFromString(@"TWTweetComposeViewController");
if (TWTweetComposeViewControllerClass != nil) {
if([TWTweetComposeViewControllerClass respondsToSelector:@selector(canSendTweet)]) {
UIViewController *twitterViewController = [[TWTweetComposeViewControllerClass alloc] init];
[twitterViewController performSelector:@selector(setInitialText:)
withObject:NSLocalizedString(@"TwitterMessage", @"")];
[twitterViewController performSelector:@selector(addURL:)
withObject:url];
[twitterViewController performSelector:@selector(addImage:)
withObject:[UIImage imageNamed:@"yourImage.png"]];
[self.navigationController presentModalViewController:twitterViewController animated:YES];
[twitterViewController release];
}
} else {
//do something else
}
我的例子是基于twitter引擎,你必须适应你的类。
0
使用最新的SDK(5.0)进行构建。它会既囤4.3和5.0
而且你可以检查IOS版本
if ([[UIDevice currentDevice] systemVersion] floatValue] >= 5.0f) {
// iCloud
} else {
// iCloudless
}
相关问题
- 1. ios 4.3应用程序与ios 5.0的兼容性
- 2. 适用于iOS的xcode5 4.3
- 3. 使用XCode 4.3.3为IOS 5.0前用户构建应用程序
- 4. 应用程序适用于ios 4.3模拟器,但不适用于ios 5模拟器。有任何想法吗?
- 5. TransitionStylePartialCurl不适用于ios 4.3
- 6. 构建一个适用于iOS的适用于Siri的PHP应用程序
- 7. 在iOS 5.0中开发适用于iOS 4.0的iPhone应用程序?
- 8. Phonegap构建应用程序不适用于iOS
- 9. 适用于iOS的AIR应用程序
- 10. 仅适用于iOS的应用程序
- 11. 如何从的iOS 4.3支持的应用程序到iOS 7
- 12. 如何知道您构建的iOS应用程序是否适用于64位。
- 13. 使用的PhoneGap构建应用程序适用于iOS,Android和Windows平台
- 14. NSURLConnection完美适用于iOS 4.3,但不适用于iOS 5/iOS 6
- 15. 构建通用iOS应用程序的最有效方法
- 16. 使用Wistia Player API构建Ionic应用程序不适用于iOs。
- 17. 使用Xcode 4.3.x为iOS 3.0构建通用应用程序 - NSKeyedUnarchiver异常
- 18. 创建适用于iOS的Web应用程序的最佳方法
- 19. 方法“不适用于iOS”
- 20. 适用于iOS的Phonegap应用程序中使用Admob的正确方法
- 21. 构建适用于iPhone的iOS应用程序适用于xCode,但不适用于命令行(xcodebuild)
- 22. 适用于Web服务应用程序的iOS应用程序体系结构
- 23. 适用于iOS地图应用程序的后端架构
- 24. 使用适用于iOS应用程序的CircleCI工作流程
- 25. 无法运行使用iOS SDK 4.3编译的iOS 3.X应用程序
- 26. 适用于iPad的iOS应用程序I(和iOS 5.1.1)
- 27. 无法使用xcodebuild构建模拟器的ios应用程序
- 28. XMPP不适用于iOS 4.3项目
- 29. 应用程序与ios 4.3和SOAP
- 30. iOS应用程序Facebook集成 - iOS 5.0的备用
感谢所有答复。但这就是我需要:) – 2012-02-14 08:46:48