Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
Objective c 随时间间隔更改NSImageView_Objective C_Cocoa_Nsimageview - Fatal编程技术网

Objective c 随时间间隔更改NSImageView

Objective c 随时间间隔更改NSImageView,objective-c,cocoa,nsimageview,Objective C,Cocoa,Nsimageview,我想做一个简单的掷骰子游戏。 在过去的一年里,我已经做了大量的C编程,并且正在尝试转换成GUI和Obj C。 我的窗口里有一个按钮和两个图像单元。图像被视为输出(染料,染料2),按钮保持动作(滚筒) 我的目标是让用户单击按钮,然后让图像单元格显示一些图像,然后在重复图像更改后保留特定的图像,比如说,三次。 这是我的骰子对象和我的应用程序代理文件: 谢谢 @implementation Dice -(NSImage *) dicecreator { int x; x = rand() % 6 +

我想做一个简单的掷骰子游戏。 在过去的一年里,我已经做了大量的C编程,并且正在尝试转换成GUI和Obj C。 我的窗口里有一个按钮和两个图像单元。图像被视为输出(染料,染料2),按钮保持动作(滚筒) 我的目标是让用户单击按钮,然后让图像单元格显示一些图像,然后在重复图像更改后保留特定的图像,比如说,三次。 这是我的骰子对象和我的应用程序代理文件:

谢谢

@implementation Dice

-(NSImage *) dicecreator {
int x;
x = rand() % 6 + 1;

    switch(x){
        case 1:
            _side = [NSImage imageNamed: @"firstside.jpg"];
            break;
        case 2:
            _side = [NSImage imageNamed: @"secondside.jpg"];
            break;
        case 3:
            _side = [NSImage imageNamed: @"thirdside.jpg"];
            break;
        case 4:
            _side = [NSImage imageNamed: @"fourthside.jpg"];
            break;
        case 5:
            _side = [NSImage imageNamed: @"fifthside.jpg"];
            break;
        case 6:
            _side = [NSImage imageNamed: @"sixthside.jpg"];
            break;
        default:
            return 0;
    }
return _side;
}
@end


@implementation AppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
}

- (IBAction)roller:(id)sender {

Dice *rollView = [[Dice alloc]init];

[self.dye setImage:rollView.dicecreator];

[self.dye2 setImage: rollView.dicecreator];

[self performSelector:@selector(dye) withObject:rollView.dicecreator afterDelay:0.5];

[self performSelector:@selector(dye2) withObject:rollView.dicecreator afterDelay:0.5];

[self performSelector:@selector(dye) withObject:rollView.dicecreator afterDelay:0.5];

[self performSelector:@selector(dye2) withObject:rollView.dicecreator afterDelay:0.5];

[self performSelector:@selector(dye) withObject:rollView.dicecreator afterDelay:0.5];

[self performSelector:@selector(dye2) withObject:rollView.dicecreator afterDelay:0.5];

}

@end 

你的问题是什么

现在我可以看到,在调用roller方法大约0.5秒后,将调用所有选择器-您可能应该选择递增值,如0.5、1、1.5

另外,我建议改用NSTimer类:

编辑: 在再次阅读您的问题后,我认为您误解了选择器是什么-您应该在其中添加这样一个方法:

-(void) assignImage1:(NSImage*)image {
    [self.dye setImage:image];
}


-(void) assignImage2:(NSImage*)image {
    [self.dye2 setImage:image];
}

...

[self performSelector:@selector(assignImage1:) withObject:[rollView dicecreator] afterDelay:0.5];
还要注意,在objective-C中,您调用对象的函数,如:

[rollView dicecreator] 

那真是太美了。正是我要找的!谢谢