【发布时间】:2011-02-07 11:01:06
【问题描述】:
注意 - 使用可变参数,Phix 在下面提供了一个超级解决方案。但是,当与整数一起使用时,它会发出编译器警告,因为您将它们转换为 id,并且它不适用于例如浮点数。
问题——如何编写一个从列表中选择一项的工具?理想情况下,关于列表中的项目/对象/任何内容的类型应尽可能灵活。
示例用法:
NSInteger openingMap = [utilities oneOf:1, 2, 3, 7, 8];
initialAngle =oneOf(1.25, 1.75, 1.95, 2.00, 2.01);
self.spaceShipNickName =oneOf(@"Blaster",@"Blitzen",@"Stardancer",@"Quantum");
self.chassisProperty = oneOf(titanium, neutronium, unavailablium);
[fireworksLayer paintStars:oneOf(blue,green,white) howMany:oneOf(20,25,50)];
[trump chooseDefaultSuite:oneOf(diamonds,hearts,clubs,spades)];
// normally have a few explosions, but, occasionally have a huge display...
explosionCount = oneOf( 2,2,2,3,4,1,28,3,3,3,70 );
请注意,一些示例是整数、一些枚举、一些 NSString 等。同样,如果一个工具可以处理不同的类型,那将是最令人印象深刻的。 (而不是一个相关的组,比如... oneOfIntegers、oneOfStrings、oneOfObject 等等。)
不用说,要选择随机项目,只需使用...
= arcrandom() % 项目数
您可以使用Objective C 方法或类、c 函数或某种宏系统、NSMutableArray 的类别扩展或块——或其他任何东西。 它应该尽可能灵活,以便在典型 iOS 或 Mac 项目中的任何地方广泛使用......有什么想法吗?
【问题讨论】:
-
好的..我认为这个问题不适合这里...阅读常见问题解答#2...但是如果您真的希望人们只是为了“挑战”而回答这个问题,请开始赏金,然后看看你得到了多少答案......
标签: iphone objective-c xcode ios macros