花式ERROR产品样本——OC部分(持续更新)

这个是我们学习OC过程中出现的各种奇怪ERROR,具体ERROR分类还没想好,先做成合集吧。

当然 我会尽量回忆学习C时出现的ERROR,也做一个合集。

 

第一个ERROR

form:旗木*卡卡西

require:定义⼀个block,返回值为NSInteger,有两个参数,⼀个是 NSArray,⼀个是NSString。实现:判断数组时候包含此字符串,如果包含,返回字符串的下标,如果不包括,返回-1。

代码:

1 typedef NSInteger (^judge)(NSString*,NSArray*);
2 judge j = ^(NSString *str,NSArray *arr)
3     {
4         if ([arr containsObject:str]) {
5             return 1;
6         }else {
7             return -1;
8         }
9     };

错误信息:

Incompatible block pointer types initializing '__strong judge' (aka 'NSInteger (^__strong)(NSString *__strong, NSArray *__strong)') with an expression of type 'int (^)(NSString *__strong, NSArray *__strong)'

分析:

先不考虑是否满足需求。问题出现在类型不匹配上,定义block时要求返回值类型为NSInteger,return返回值的默认类型为int,所以会出现上述错误。

另外还注意到了__strong修饰符(标准的叫法是这个吗?),不知道是干什么的,先留个坑,以后填上。

转载于:https://www.cnblogs.com/fantasia86/p/4230239.html

你可能感兴趣的:(花式ERROR产品样本——OC部分(持续更新))