- 博客(10)
- 收藏
- 关注
原创 iOS中为什么block用copy来修饰
1. Block的声明和线程安全Block属性的声明,首先需要用copy修饰符,因为只有copy后的Block才会在堆中,栈中的Block的生命周期是和栈绑定的,可以参考之前的文章(iOS: 非ARC下返回Block)。另一个需要注意的问题是关于线程安全,在声明Block属性时需要确认“在调用Block时另一个线程有没有可能去修改Block?”这个问题,如果确定不会有这种情况发生的话,那么
2015-11-28 22:29:11 1863
原创 GCD和Block
gcd使用block注意事项:1、block 在实现时就会对它引用到的它所在方法中定义的栈变量进行一次只读拷贝,然后在 block 块内使用该只读拷贝;2、非内联(inline) block 不能直接访问 self,只能通过将 self 当作参数传递到 block 中才能使用,并且此时的 self 只能通过 setter 或 getter 方法访问其属性,不能使用句点式方法。但内联 blo
2015-11-28 22:13:40 871
原创 在子线程中使用runloop,正确操作NSTimer计时的注意点 三种可选方法
1、第一种方法 + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;2、第二种方法NSThread *thread = [[NSThread al
2015-11-26 19:40:40 987
原创 iOS中的CoreData的使用(详解)
Core Data数据持久化是对SQLite的一个升级,它是ios集成的,在说Core Data之前,我们先说说在CoreData中使用的几个类。 (1)NSManagedObjectModel(被管理的对象模型) 相当于实体,不过它包含 了实体间的关系 (2)NSManagedObjectContext(被管理的对象上下文)
2015-11-23 19:14:37 622
原创 教大家一个在自定义的View里面不写block,delegate,Notification快速刷新UI的方法!
//得到此view 所在的viewController- (UIViewController *)viewController { for (UIView* next = [self superview]; next; next = next.superview) { UIResponder* nextResponder = [n
2015-11-20 10:41:04 614
原创 关于3种方式写多线程的一些理解
NSTreadNSLog(@"当前是否处于主线程:%d",[NSThread isMainThread]);//获取主线程 [NSThread mainThread];//创建线程方法 [NSThread detachNewThreadSelector:@selector(thread1) toTarget:self with
2015-11-20 10:34:28 594
原创 Sqlite语句和CoreData
Sqlite3的简单SQL语句创建表CREATE TABLE Test (name varchar(100), age integer);判断表是否存在,不存在才会创建CREATE TABLE IF NOT EXISTS Test (name varchar(100), age integer)查询表SELECT * FROM Test;条件查询表SELECT * FROM Test WH
2015-11-20 09:39:44 675 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人