2011-12-21 125 views
1

我已经完成了在iOS 5上发布推文消息的示例,它工作的很好。我有弱链接的Twitter的框架,在iOS 5。但是,当我在iOS 4.2上运行相同的应用程序,它会引发我一个错误象下面这样:Twitter/Twitter.h:没有这样的文件或目录

error: Twitter/Twitter.h: No such file or directory

我怎样才能解决这个问题?请帮助我。

注意:在iOS 5开发机器上 - 我使用Twitter API完成了示例项目,并且它工作正常,并且在iOS 5设备上也进行了测试。现在试图获得对iOS4.2的支持,我开始研究iOS 4.2开发机器。现在我得到相同的错误:

error: Twitter/Twitter.h: No such file or directory.

我不知道如何解决这个错误。由于我需要获得对4.2的支持,我必须在iOS4.2开发机器上工作。但我无法编译。请帮忙。

+0

所以你的导入是“#import ”,你的'iOS部署目标'是什么?你是否也包裹了你的'tweeting'代码,如下所示:if(NSClassFromString(@“TWTweetComposeViewController”))....或类似的东西 – bandejapaisa 2011-12-21 09:01:05

+0

bandejapasia:谢谢你的回复,我的deplyment目标是iOS 4.2 – user198725878 2011-12-21 09:03:50

回答

1

尝试:

if (NSClassFromString(@"TWTweetComposeViewController")) { 
    [self iOS5Tweet:statusText]; 
} else ..... 

- (void) iOS5Tweet:(NSString *)text { 
TWTweetComposeViewController *tweet = [[[TWTweetComposeViewController alloc] init] autorelease]; 

if (![TWTweetComposeViewController canSendTweet]) 
{ 
    UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Error" message:@"No Twitter accounts are set up on this device" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease]; 
    [alert show]; 
    return; 
} 

[tweet setInitialText:text]; 
[tweet setCompletionHandler:^(TWTweetComposeViewControllerResult result) { 
    [self dismissModalViewControllerAnimated:YES]; 
    [self performSelectorOnMainThread:@selector(tweeted:) withObject:[NSNumber numberWithInt:result] waitUntilDone:NO]; 
}]; 
[self presentModalViewController:tweet animated:YES]; 

}

我有4.2的iOS部署目标,与最新的SDK(5.0)建设。部署和运行都很好。

+0

我目前正在测试ios4.2不是ios5 – user198725878 2011-12-21 09:11:02

+0

是的,我也是。我正在使用的应用程序在iOS 4.2上运行良好。您需要将基础SDK设置为5.0,您是否已经完成了这项工作? – bandejapaisa 2011-12-21 09:44:08

+0

我的意思是,我试图从ios 4.2上创建,这是我的mac上,而不是iPhone设备 – user198725878 2011-12-21 09:48:16

2

对于SDK,您需要将其设置为最新版本5.x.但对于目标,您可以将其设置为4.2或您的应用将支持的任何版本。你可以用几个选项来检查,这里是我用过的:

#import <Twitter/TWTweetComposeViewController.h> 

if ([TWTweetComposeViewController class]) 
{ 
   //can tweet 
} else 
{ 
   //can't tweet 
} 
+0

这不适用于小于5的iOS。它会崩溃。 TWTweetComposeViewController将不存在。你需要检查使用NSString:if(NSClassFromString(@“TWTweetComposeViewController”))...就像我在我的答案中所做的那样。 – bandejapaisa 2011-12-21 11:31:21

+0

我在当前应用商店中的应用中使用了它。它与iOS 4.3一起工作。确保你只是将我的基本SDK设置为iOS 5.0。 – user523234 2011-12-21 14:59:07

+1

@bandejapaisa - 如果使用4的基础SDK进行构建。2或更高(这是这样做的情况下),弱连接现在发生在每个班的基础上:http://www.marco.org/2010/11/22/supporting-older-versions-of-ios -while-using-new-apis不再需要使用'NSClassFromString()'来确定一个类是否存在于较旧的操作系统版本中,你可以执行上面显示的内容。你也不需要明确的弱链接框架了。 – 2011-12-21 16:37:54

相关问题