objective-c – 你可以在一个选择器中存储多个方法吗?

objective-c – 你可以在一个选择器中存储多个方法吗?,第1张

概述我有一个类似于程序的拼图,你可以按照正确的顺序将块放在一起,以尝试完成拼图.当你完成后,你可以点击播放按钮然后程序将让一个小男人走过你的街区所在的街区.因此,如果您放置一个块,一个块右,一个块下来,然后点击播放程序将调用然后调用方法向上移动,向右移动,向下移动. 当我的程序运行并试图找出要调用的方法以及以什么顺序调用时,我需要在程序找到它们时按顺序存储这些方法,基本上,我不能让程序在它数字时立即调 我有一个类似于程序的拼图,你可以按照正确的顺序将块放在一起,以尝试完成拼图.当你完成后,你可以点击播放按钮然后程序将让一个小男人走过你的街区所在的街区.因此,如果您放置一个块,一个块右,一个块下来,然后点击播放程序将调用然后调用方法向上移动,向右移动,向下移动.

当我的程序运行并试图找出要调用的方法以及以什么顺序调用时,我需要在程序找到它们时按顺序存储这些方法,基本上,我不能让程序在它数字时立即调用方法要调用哪些方法,否则移动块的人会快速移动,我想将方法​​存储在某种方法数组中(我认为它会像某种选择器),这样我就可以调用每种方法在我的程序找出了它要做的一切之后的某个时间间隔内.

我的正常程序现在看起来像这样

if(random requirements)[self moveUp]else if(random requirements)[self moveDown]else if (random requirements)[self moveRight]else if(random requirements)[self moveleft]

好吧,我宁愿这看起来像这样

if(random requirements)SEL selector addMethod:[self moveUp]else if(random requirements)SEL selector addMethod:[self moveDown]else if (random requirements)SEL selector addMethod:[self moveRight]else if(random requirements)SEL selector addMethod:[self moveleft]

显然这不是真正的语法,但你能理解我在寻找什么吗?

解决方法 您不能在一个选择器中存储多个选择器,但制作一个选择器数组是完全有效的事情.最简单的方法是将选择器的字符串表示存储在NSMutableArray中,并从迭代数组的代码中的字符串创建选择器.

NSMutableArray *selectornames = [NSMutableArray array];if(random requirements)    [selectornames addobject:NsstringFromSelector(@selector(moveUp))];if(random requirements)    [selectornames addobject:NsstringFromSelector(@selector(moveDown))];...for (Nsstring *selectorname in selectornames) {    SEL nextSelector = NSSelectorFromString (selectorname);    // Now you can invoke your selector}

除了选择器之外的另一个选项是using blocks.块也非常擅长封装动作,并且您不需要单独存储它们的目标.

总结

以上是内存溢出为你收集整理的objective-c – 你可以在一个选择器中存储多个方法吗?全部内容,希望文章能够帮你解决objective-c – 你可以在一个选择器中存储多个方法吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1027653.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存