当我的程序运行并试图找出要调用的方法以及以什么顺序调用时,我需要在程序找到它们时按顺序存储这些方法,基本上,我不能让程序在它数字时立即调用方法要调用哪些方法,否则移动块的人会快速移动,我想将方法存储在某种方法数组中(我认为它会像某种选择器),这样我就可以调用每种方法在我的程序找出了它要做的一切之后的某个时间间隔内.
我的正常程序现在看起来像这样
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 – 你可以在一个选择器中存储多个方法吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)