ios开发中 block作为函数参数怎么使用

2025-05-09 15:14:28
推荐回答(1个)
回答1:

声明和使用Block: Apple文档中介绍了如何将一个Block声明为变量,并将其作为一个函数使用: int (^oneFrom)(int) = ^(int anInt) { return anInt - 1; }; // 创建了一个内联块^(int anInt)... ,其函数体和结果被传到了另外一个名为OneFrom的Block。 printf("1 from 10 is %d", oneFrom(10)); // 打印出: "1 from 10 is 9" // 这个block函数(distanceTraveled)传入3个float型参数,返回float值。 float (^distanceTraveled) (float, float, float) = ^(float startingSpeed, float acceleration, float time) { float distance = (startingSpeed * time) + (0.5 * acceleration * time * time); return distance; }; 也可以传入一个Block作为一个参数,而不要以如上的方式声明,这样就可以在需要将block作为参数的时候以内联代码的方式简单地实现。 NSArray *anArray = [NSArray arrayWithObjects: @"cat", @"dog",nil]; sortFunction(anArray, ^(string *a string *b){ if ( a == @"cat") return TRUE; });