我想在xcode中使用这样的公式制作一个客观的c数组.
所以我可以用arrayName [i]加载一个公式并给出x的值并得到答案.有没有办法做到这一点,如果是这样的话怎么样?
Luc*_*rdo 12
您可以使用一系列块来实现此目的.每个块都会收到一个参数x并返回一个值,计算你的一个函数.然后,您可以选择数组的任何位置并执行它.
它将是这样的:
typedef CGFloat (^MyFunction)(CGFloat); //using a typedef to ease the heavy syntax of the blocks
MyFunction function1 = ^CGFloat(CGFloat x){
return x + 5;
};
MyFunction function2 = ^CGFloat(CGFloat x){
return x - 5;
};
MyFunction function3 = ^CGFloat(CGFloat x){
return x / 5;
};
MyFunction function4 = ^CGFloat(CGFloat x){
return x * 5;
};
NSArray *functions = @[function1, function2, function3, function4];
Run Code Online (Sandbox Code Playgroud)
现在您可以访问数组的任何位置,并执行所选的块,如下所示:
MyFunction myFunction = functions[3];
CGFloat test = myFunction(5); //test will hold 25, because the selected block is 'x * 5'
Run Code Online (Sandbox Code Playgroud)
您显然可以更改3数组的任何索引.当然,您可以声明上述任何其他函数,并将它们添加到数组中.
我测试过,效果很好.希望它有所帮助.
| 归档时间: |
|
| 查看次数: |
203 次 |
| 最近记录: |