2011-12-21 2 views
1

Я сделал образец для публикации сообщений в твиттере на iOS 5, и он отлично работает. И у меня есть слабая связала рамки щебетать на прошивке 5. Но когда я бег же приложение на прошивке 4.2, он бросает мне ошибку, как показано ниже:Twitter/Twitter.h: Нет такого файла или каталога

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

Как я могу решить эту проблему? Пожалуйста, помогите мне.

Примечание: на машине разработки iOS 5 - я сделал образец проекта с использованием API Twitter, и он отлично работает и протестирован на устройстве iOS 5. Теперь, пытаясь получить поддержку для iOS4.2, я начал работать на машине разработки iOS 4.2. Теперь я получаю ту же ошибку:

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

Я не знаю, как устранить эту ошибку. Поскольку мне нужно получить поддержку для 4.2, мне нужно работать на iOS4.2. Но я не могу скомпилировать. Пожалуйста помоги.

+0

Так что ваш импорт «#import », что ваш "IOS развертывания Target? Вы также обернули свой код «чириканья» следующим образом: if (NSClassFromString (@ «TWTweetComposeViewController»)) .... или что-то в этом роде – bandejapaisa

+0

bandejapasia: Спасибо за ответ, и моя целевая ориентировка iOS 4.2 – user198725878

ответ

1

Try:

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

}

У меня есть цель IOS развертывания 4,2, здание с последним SDK (5.0). Развертывает и работает отлично на обоих.

+0

В настоящее время я тестирую ios4.2 not ios5 – user198725878

+0

Да, я тоже. Приложение, над которым я работаю, отлично работает на iOS 4.2. Вам нужно, чтобы базовый SDK был установлен в 5.0, вы это сделали? – bandejapaisa

+0

Я имею в виду, я пытаюсь построить из ios 4.2, который находится на моем Mac, а не на устройстве iphone. – user198725878

2

Для SDK вам необходимо установить его в последней версии 5.x. Но для цели вы можете установить ее в 4.2 или любую другую версию, которую будет поддерживать ваше приложение. Несколько вариантов, которые вы можете использовать, чтобы проверить, вот что я использовал:

#import <Twitter/TWTweetComposeViewController.h> 

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

Это не будет работать на iOS меньше 5. Это приведет к сбою , TWTweetComposeViewController не будет существовать. Вам нужно проверить с помощью NSString: if (NSClassFromString (@ "TWTweetComposeViewController")) ... как и в моем ответе. – bandejapaisa

+0

Я использовал его в своем приложении, которое сейчас находится в магазине приложений. Он работал с iOS 4.3. Убедитесь, что вы установили базовый SDK в iOS 5.0, который я только что опубликовал. – user523234

+1

@bandejapaisa - Если вы строите базовый SDK 4.2 или выше (что имеет место при этом), слабая связь теперь происходит на уровне каждого класса: http://www.marco.org/2010/11/22/supporting-older-versions-of-ios -while-use-new-apis Больше не нужно использовать 'NSClassFromString()', чтобы определить, присутствует ли класс в более старой версии ОС, вы можете просто сделать то, что показано выше. Вам также не нужно явно скрывать ссылку на структуру. –

Смежные вопросы