2011-12-21 5 views
1

iOS 5에 짹짹 메시지를 게시 할 때 샘플을 작성했는데 잘 작동합니다. 그리고 약이 아이폰 OS 5. 트위터 프레임 워크를 연결하지만 아이폰 OS 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

+0

bandejapasia : 답장을 보내 주셔서 감사 드리며 대상은 iOS 4.2입니다. – user198725878

답변

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]; 

}

나는 최신 SDK (5.0)가있는 건물, 4.2의 아이폰 OS 배포 목표를 가지고있다. 두 가지 모두에 배포하고 잘 실행됩니다.

+0

현재 테스트 중입니다. ios4.2 아니 ios5 – user198725878

+0

예, 나도. iOS 4.2에서 제대로 작동하는 앱입니다. 5.0으로 기본 SDK를 설정해야합니다. – bandejapaisa

+0

내 iphone 4.2가 아닌 iphone 장치에 빌드하려고합니다. – user198725878

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

+0

현재 앱 스토어에있는 앱에 사용했습니다. 그것은 iOS 4.3에서 작동했습니다. 내가 게시 한 Base SDK를 iOS 5.0으로 설정했는지 확인하십시오. – user523234

+1

@bandejapaisa - 기본 SDK 4로 빌드하는 경우.2 이상 (이 경우에 해당), 약한 연결은 이제 클래스 단위로 발생합니다. http://www.marco.org/2010/11/22/supporting-older-versions-of-ios -while-using-new-apis 더 이상 NSClassFromString()을 사용하여 이전 OS 버전에 클래스가 있는지 판별 할 필요가 없습니다. 위의 내용 만 수행하면됩니다. 프레임 워크를 명시 적으로 약하게 링크 할 필요도 없습니다. –

관련 문제