iOS 知识 小集

1. Auto property synthesis will not synthesize property 'response'; it will be implemented by its superclass, use @dynamic to acknowledge intention

iOS 知识 小集_第1张图片
AFNetworking

解决方法: 在.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

原因:字符编码(有不正确的字符)

网上搜了一下,有很多方法都没有解决我的问题,以下是搜到的方法但没有解决我的问题:

iOS 知识 小集_第2张图片
没有解决


最终采纳的方法:导入 libiconv.tbd 

iOS 知识 小集_第3张图片
最终采纳


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 函数入口



iOS 知识 小集_第4张图片

你可能感兴趣的:(iOS 知识 小集)