Ios 警报中游戏点数的社交共享(Xcode)
我刚开始编写应用程序等等。所以我的第一个应用程序是一个带有定时器功能的“简单”游戏。我的问题是:我想给用户一个功能,他可以在Twitter和Facebook上分享他的积分,但游戏积分的输出总是0。。我想解决这个问题,需要您的帮助。Ios 警报中游戏点数的社交共享(Xcode),ios,nstimer,social,Ios,Nstimer,Social,我刚开始编写应用程序等等。所以我的第一个应用程序是一个带有定时器功能的“简单”游戏。我的问题是:我想给用户一个功能,他可以在Twitter和Facebook上分享他的积分,但游戏积分的输出总是0。。我想解决这个问题,需要您的帮助。 截图 *对不起,我是德国人,翻译如下: “KlickMich”->“TapMe” “Zeit”->“时间” “朋克斯坦”->“点” “时间到了” “你得了11分”——>“你得了11分” “Auf Facebook teilen”->“在Facebook上分享”
截图
*对不起,我是德国人,翻译如下: “KlickMich”->“TapMe”
“Zeit”->“时间”
“朋克斯坦”->“点”
“时间到了”
“你得了11分”——>“你得了11分”
“Auf Facebook teilen”->“在Facebook上分享”
“Auf Twitter teilen”->“在Twitter上分享”
“Nochmal Spilen”->“再次播放”
“哈贝·杰拉德在克里克米奇·埃雷希特的比赛中获得0分…”->“在塔普梅的比赛中获得0分…”
期待您的反应:) 您诚挚的
罗宾
代码:ViewController.h
#导入
#导入“ViewController.m”
@界面ViewController:UIViewController{
IBUILabel*scoreLabel;
IBUILabel*时间标签;
NSInteger计数;
NSInteger秒;
n定时器*定时器;
整数时间;
}
-(IBAction)按钮按下;
-(无效)设置游戏;
-(无效)减去时间;
-(IBAction)PostToWitter;
-(IBAction)postToFacebook;
@结束
代码:ViewController.m
#导入“ViewController.h”
#进口
#进口
@界面视图控制器()
@结束
@实现视图控制器
-(无效)viewDidLoad{
[超级视图下载];
//加载视图后,通常从nib执行任何其他设置。
[自我设置游戏];
}
-(无效)未收到记忆警告{
[超级记忆警告];
//处置所有可以重新创建的资源。
}
-(iAction)按钮按下{
计数++;
scoreLabel.text=[NSString stringWithFormat:@“Punktestand:%li”,(长)计数];
}
-(无效)设置游戏{
秒=15;
计数=0;
timerLabel.text=[NSString stringWithFormat:@“Zeit:%li”,(长)秒];
scoreLabel.text=[NSString stringWithFormat:@“Punktestand:%li”,(长)计数];
计时器=[NSTimer scheduledTimerWithTimeInterval:1.0f
目标:自我
选择器:@selector(减去时间)
用户信息:无
重复:是];
}
-(无效)减去时间{
秒--;
timerLabel.text=[NSString stringWithFormat:@“Zeit:%li”,(长)秒];
如果(秒==0){
[计时器失效];
UIAlertView*alert=[[UIAlertView alloc]initWithTitle:@“Die Zeit ist um”
消息:[NSString stringWithFormat:@“Du hast%li Punkte erzielt”,(长)计数]
代表:赛尔夫
取消按钮:@“Nochmal Spilen”
其他按钮标题:@“Auf Facebook teilen”,“Auf Twitter teilen”,无];
[警报显示];
}
}
-(无效)alertView:(UIAlertView*)alertView单击按钮索引:(NSInteger)按钮索引{
[自我设置游戏];
如果(按钮索引==1)
{
[自言自语];
}
否则如果(按钮索引==2)
{
[自传Facebook];
}
}
-(IBAction)postToTwitter{
如果([SLComposeViewController可用于服务类型:SLServiceTypeTwitter])
{
SLComposeViewController*tweetSheet=[SLComposeViewController
服务类型的ComposeViewController:SLServiceTypeTwitter];
[tweetSheet setInitialText:[NSString stringWithFormat:@“Habe gerade%li Punkte in KlickMich erreicht…”,(长)计数];
[self-presentViewController:tweetSheet动画:是完成:无];
}
}
-(iAction)postToFacebook{
如果([SLComposeViewController可用于服务类型:SLServiceTypeFacebook]){
SLComposeViewController*控制器=[SLComposeViewController ComposeViewController服务类型:SLServiceTypeFacebook];
[controller setInitialText:[NSString stringWithFormat:@“在KlickMich erreicht中有%li Punkte…”,(长)计数];
[自我呈现视图控制器:控制器已设置动画:是完成:无];
}
}
@结束
我查看了您的代码。首先重置计时器,然后将分数发送到Twitter
首先在Twitter
上共享,然后您必须调用setupGame
方法,如下所示:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 1)
{
[self postToFacebook];
}
else if (buttonIndex == 2)
{
[self postToTwitter];
}
[self setupGame]; // after share you can reset
}
并像
-(void)posttowitter
那样调用此方法,而不像-(IBAction)posttowitter
那样调用此方法。因为与该方法没有关联。您正在调用该方法,而不是使用按钮操作进行连接。这是您需要的答案。请看一下:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0)
{
[self setupGame];
NSLog(@"Cancel..");
}
else if (buttonIndex == 1)
{
NSLog(@"Facebook..");
[self postToFacebook];
}
else if (buttonIndex == 2)
{
NSLog(@"Twitter..");
[self postToTwitter];
}
}
- (void)postToTwitter
{
SLComposeViewController *tweetSheet=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
// if([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
// {
SLComposeViewControllerCompletionHandler __block completionHandler=^(SLComposeViewControllerResult result){
[tweetSheet dismissViewControllerAnimated:YES completion:nil];
switch(result){
case SLComposeViewControllerResultCancelled:
default:
{
NSLog(@"Cancel");
[self setupGame];
}
break;
case SLComposeViewControllerResultDone:
{
NSLog(@"Post");
[self setupGame];
}
break;
}
};
[tweetSheet setInitialText:[NSString stringWithFormat:@"Habe gerade %li Punkte in KlickMich erreicht...",(long)count]];
[tweetSheet setCompletionHandler:completionHandler];
[self presentViewController:tweetSheet animated:YES completion:nil];
//}
}
太好了,非常感谢你!我不认为解决方案会那么简单:D——但我还有一件事:当用户将积分发布到twitter或Facebook时,我如何停止计时器?因为当点击“发布到Facebook或Twitter”按钮时,计时器就启动了。单击“取消”或“发布”时,如何让计时器启动?有什么想法吗?好吧,很酷,但你说“有时”是什么意思?再过30分钟?试着称之为[自我设置游戏];共享编码后的in-(void)posttowitter方法。不要在“alertView ClickedButtonIndex”方法中写入。如果你想写,那么就写If(buttonIndex==0),因为它会返回alertview取消操作。不抱歉,同样的问题,但是第二个选项是什么意思?在“如果(按钮索引==0)”中?
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 1)
{
[self postToFacebook];
}
else if (buttonIndex == 2)
{
[self postToTwitter];
}
[self setupGame]; // after share you can reset
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0)
{
[self setupGame];
NSLog(@"Cancel..");
}
else if (buttonIndex == 1)
{
NSLog(@"Facebook..");
[self postToFacebook];
}
else if (buttonIndex == 2)
{
NSLog(@"Twitter..");
[self postToTwitter];
}
}
- (void)postToTwitter
{
SLComposeViewController *tweetSheet=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
// if([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
// {
SLComposeViewControllerCompletionHandler __block completionHandler=^(SLComposeViewControllerResult result){
[tweetSheet dismissViewControllerAnimated:YES completion:nil];
switch(result){
case SLComposeViewControllerResultCancelled:
default:
{
NSLog(@"Cancel");
[self setupGame];
}
break;
case SLComposeViewControllerResultDone:
{
NSLog(@"Post");
[self setupGame];
}
break;
}
};
[tweetSheet setInitialText:[NSString stringWithFormat:@"Habe gerade %li Punkte in KlickMich erreicht...",(long)count]];
[tweetSheet setCompletionHandler:completionHandler];
[self presentViewController:tweetSheet animated:YES completion:nil];
//}
}