这个是我们学习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修饰符(标准的叫法是这个吗?),不知道是干什么的,先留个坑,以后填上。
原文:http://www.cnblogs.com/fantasia86/p/4230239.html