Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 警报中游戏点数的社交共享(Xcode)_Ios_Nstimer_Social - Fatal编程技术网

Ios 警报中游戏点数的社交共享(Xcode)

Ios 警报中游戏点数的社交共享(Xcode),ios,nstimer,social,Ios,Nstimer,Social,我刚开始编写应用程序等等。所以我的第一个应用程序是一个带有定时器功能的“简单”游戏。我的问题是:我想给用户一个功能,他可以在Twitter和Facebook上分享他的积分,但游戏积分的输出总是0。。我想解决这个问题,需要您的帮助。 截图 *对不起,我是德国人,翻译如下: “KlickMich”->“TapMe” “Zeit”->“时间” “朋克斯坦”->“点” “时间到了” “你得了11分”——>“你得了11分” “Auf Facebook teilen”->“在Facebook上分享”

我刚开始编写应用程序等等。所以我的第一个应用程序是一个带有定时器功能的“简单”游戏。我的问题是:我想给用户一个功能,他可以在Twitter和Facebook上分享他的积分,但游戏积分的输出总是0。。我想解决这个问题,需要您的帮助。

截图


*对不起,我是德国人,翻译如下: “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];
  //}

 }