1. Auto property synthesis will not synthesize property 'response'; it will be implemented by its superclass, use @dynamic to acknowledge intention
解决方法: 在.m文件里 @dynamic response;
@dynamic告诉编译器这个属性是动态的,动态的意思是等你编译的时候就知道了它只在本类合成;
//于 3/15
2. iOS 隐藏键盘通用方法:
2.1 遵循UITextFieldDelegate的代理方法:在return的代理方法里面书写[self.view endEditing:YES];
2.2 - (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event{
[self.view endEditing:YES];
}
这个方法只能适用控件是放在view上面,才有效,当遇到UIScrollView、UITableView 时,可以使用下面的方法(注:容易手势冲突):
2.3 UITapGestureRecognizer *myTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hiddenTap:)];
[_myTableView addGestureRecognizer:myTap];
- (void)hiddenTap:(id)sender {
[self.view endEditing:YES];
}
3. NSData 转 NSString 结果为 null
原因:字符编码(有不正确的字符)
网上搜了一下,有很多方法都没有解决我的问题,以下是搜到的方法但没有解决我的问题:
最终采纳的方法:导入 libiconv.tbd
4.xcode8已经集成了注释功能,(可替换VVDocumenter-Xcode)
快捷键 option + command + /
5.查看.a库支持类型:
cd 到 .a 库根目录,lipo -info xxx.a
6.GCD使用dispatch_group_notify、dispatch_group_enter、dispatch_group_leave处理多线程同步操作
- (void)syncAction{
dispatch_group_t group =dispatch_group_create();
dispatch_queue_t globalQueue=dispatch_get_global_queue(0, 0);
dispatch_group_enter(group);
//模拟多线程耗时操作
dispatch_group_async(group, globalQueue, ^{
sleep(3);
NSLog(@"%@---block1结束。。。",[NSThread currentThread]);
dispatch_group_leave(group);
});
NSLog(@"%@---1结束。。。",[NSThread currentThread]);
dispatch_group_enter(group);
//模拟多线程耗时操作
dispatch_group_async(group, globalQueue, ^{
sleep(3);
NSLog(@"%@---block2结束。。。",[NSThread currentThread]);
dispatch_group_leave(group);
});
NSLog(@"%@---2结束。。。",[NSThread currentThread]);
dispatch_group_notify(group, dispatch_get_global_queue(0, 0), ^{
NSLog(@"%@---全部结束。。。",[NSThread currentThread]);
});
}
7。程序遇到 crash 不跳到 main 函数入口