これが私が思いついたものです。それは私がそれをするのに必要なことをうまく呼びます。うまくいけば、それは他の誰かにも役立つでしょう。
- (void)fetchTweets
{
twitterLoader.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"StatusIndicator.png"],
[UIImage imageNamed:@"StatusIndicator1.png"],
[UIImage imageNamed:@"StatusIndicator2.png"],
[UIImage imageNamed:@"StatusIndicator3.png"],
[UIImage imageNamed:@"StatusIndicator4.png"],
[UIImage imageNamed:@"StatusIndicator5.png"],
[UIImage imageNamed:@"StatusIndicator6.png"],
[UIImage imageNamed:@"StatusIndicator7.png"],
[UIImage imageNamed:@"StatusIndicator8.png"],
[UIImage imageNamed:@"StatusIndicator9.png"],
[UIImage imageNamed:@"StatusIndicator10.png"],
[UIImage imageNamed:@"StatusIndicator9.png"],
[UIImage imageNamed:@"StatusIndicator8.png"],
[UIImage imageNamed:@"StatusIndicator7.png"],
[UIImage imageNamed:@"StatusIndicator6.png"],
[UIImage imageNamed:@"StatusIndicator5.png"],
[UIImage imageNamed:@"StatusIndicator4.png"],
[UIImage imageNamed:@"StatusIndicator3.png"],
[UIImage imageNamed:@"StatusIndicator2.png"],
[UIImage imageNamed:@"StatusIndicator1.png"],
nil];
twitterLoader.animationDuration = 0.8;
[twitterLoader startAnimating];
ACAccountStore *store = [[ACAccountStore alloc] init];
ACAccountType *twitterAccountType =
[store accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
// Request permission from the user to access the available Twitter accounts
[store requestAccessToAccountsWithType:twitterAccountType
options:nil
completion:^(BOOL granted, NSError *error)
{
if (!granted)
{
NSLog(@"User rejected access to the account.");
}
else
{
[twitterLoader startAnimating];
NSArray *twitterAccounts =
[store accountsWithAccountType:twitterAccountType];
if ([twitterAccounts count] > 0)
{
ACAccount *account = [twitterAccounts objectAtIndex:0];
[twitterLoader startAnimating];
NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
[params setObject:@"johnnelm9r" forKey:@"screen_name"];
[params setObject:@"100" forKey:@"count"];
[params setObject:@"0" forKey:@"include_entities"];
[params setObject:@"0" forKey:@"include_rts"];
// The endpoint that we wish to call
NSURL *url =
[NSURL
URLWithString:@"http://api.twitter.com/1.1/statuses/user_timeline.json"];
SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeTwitter
requestMethod:SLRequestMethodGET
URL:url
parameters:params];
// Attach the account object to this request
[request setAccount:account];
[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error)
{
if (!responseData)
{
NSLog(@"%@", error);
}
else
{
NSError *jsonError;
tweets = [NSJSONSerialization JSONObjectWithData:responseData
options:NSJSONReadingMutableLeaves
error:&jsonError];
if (tweets)
{
NSLog(@"%@", tweets);
[self.twitterTableView reloadData];
[twitterLoader stopAnimating];
}
else
{
NSLog(@"%@", jsonError);
}
}
}];
[self.twitterTableView reloadData];
[twitterLoader stopAnimating];
}
}
}];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(reachabilityChanged:)
name:kReachabilityChangedNotification
object:nil];
self.reachability = [Reachability reachabilityWithHostName:@"www.apple.com"];
[self.reachability startNotifier];
}
また、簡単なローダーと到達可能性を追加しました。不要な場合は、下部にあるNSNotificationを削除してください。
そして、必ず追加してください
アカウントとソーシャルフレームワーク
ヘッダーファイルを、それを使用する.mファイルにインポートします。
幸運を!