MacDev 板


LINE

※ 引述《leondemon (狗狗)》之铭言: : 以上是简化的一个流程 以上程式码在搜寻时是可以work : 但是当键盘输入过於快速时(大约超过每秒2个字母) 会发生以下问题: : Problem 1: : 当输入过於快速时 发现到async的operation会一直卡在isExecuting的状态 : 发现是卡在NSArray的-indexOfObjectPassingTest:里面出不来 不知道为什麽 : 朋友说试着改用suffix tree来做搜寻 (不过我还没研究...) : 目前字串搜寻速度效率我可以接受 只不过不知道为什麽会发生这种情况... Orz 我们不能够确定 NSArray 的 indexOfObjectPassingTest: 里头 有没有 lock,搞不好同时有两个 thread 一起 enumerate 资料 会造成什麽东西被卡住。 我觉得可以先尝试在建立一笔新的 async 搜寻的时候,先把前面 所有的 operation 先统统清掉在加入到 operation queue。 对 self.operationQueue 呼叫一下 cancelAllOperations 看看。 或是把 operation queue 允许的 operation 设成 1,一个 operation 做完才能做下一个。 : Problem 2: : 当输入过於快速时 会发生UI整个卡住不能动的情况 : 把-scrollToRowAtIndexPath:atScrollPosition:animate:给comment out就不会卡住 : 原本推测是前一个scroll的animation还没结束就实行下一个scroll造成 iOS 里头有动画的元件,动画都需要 0.25 秒的时间,如果这一个 动画还没做完就去呼叫另外一个动画,往往会出问题,像是 navigation controller 还在 push 的时候就要求 pull,就会导致 整个 navigation 路径乱掉。 一种作法是,我们可以把所有的 scroll 动作,再包成一个 operation 丢到另外一个 operation queue 里头,而不是直接丢到 main thread 做事。这个 operation queue 一次只允许一个 operation,里头每个 operation 在要求 main thread 更新 UI 之後,再 sleep 个 0.25 秒,或是跑个 0.25 秒的 runloop,确保所有的动画都有足够的时间。 不过这麽做,应该就会感觉 UI 的反应速度赶不上打字的速度。 -- zonble.net cocoa.zonble.net --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 36.229.55.22
1F:推 leondemon:谢谢Z大 不过cancelAllOperations好像不会取消执行中的 09/28 17:57
2F:→ leondemon:设立queue的瓶颈 感觉又很不responsable 不过我会试试看 09/28 17:59
3F:→ leondemon:UI部分 我再用设queue的瓶颈加cancelAllOperations试试 09/28 18:00
4F:→ leondemon:不过很想知道有没有更好的作法 :( 09/28 18:00
5F:推 dryman:你可以试试Omni group的OFTrie 或是 NDTrie 09/29 10:08
6F:→ dryman:直接改资料结构对搜寻速度应该会很有帮助 09/29 10:08
7F:推 dryman:还有一招是core data batching 但这我没用过.. 09/29 10:55







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP