随笔1

把握  线程 和 Runloop 的关系

返回  当前类的实例  的  类方法  都是 autorelease的

会交给  所在 释放池 进行管理


主线程的 runloop 是一直存在的

当 perform selector 在后台线程中执行的时候, 这个线程 必须 有一个开启的 runloop

子线程的 runloop 默认是不开启的

perform selector 是 selector源

在创建的子线程中要先放一个 @autoreleasepool { }

NSOperation的main方法中 就是如此

operation 的 executing和 finishing 状态量需要用willChangeValueForKey / didChangeValueForKey来触发KVO消息

要注意:

并发的Operation放在子线程中的情况

子线程默认不创建runloop,start方法返回之后 子线程就退出了

所以start方法中创建异步NSURLConnection的delegate回调时线程已经木有了

 

tableview 用runloop加载图片的性能优化

[self.cellImageView  performSelector:@selector(setImage:)

withObject: downloadedImage

afterDeleay:0

inModes:@[ NSDefaultRunLoopMode]

]


被add到Queue里面的Operation必定是并发的,不用 care 它自身是不是并发设计了

这是为什么呢?这是因为Queue回味每一个add到队列的Operation创建一个线程来运行其start方法


如果maxConcurrentOperationCount设置为1或者吧operation放到 [NSOperationQueue mainQueue]里面执行,那它们只能是顺序执行,不可能并发


关于实时搜索问题如何保证结果是搜索的最新的条件的结果

每次执行request的时候都把上一个operation cancel掉,然后在completionBlock中判断operation是否cancel状态,如果是cancel状态,那么就不返回response的值不就行了


问题: nav.delegate 的属性语义修饰问题(iOS8 以及以下是assign

   tableView的headerview的刷新问题(iOS8刷新的时候 不会应用headerview最新的frame,即刷新不起作用)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值