「4color」というアプリでメインのスレッドとは別スレッドでボタンの点滅をさせているのですけどiOS6まではスムーズに動いていたのにiOS7になったら変なウェイトが入って動きがもたついてたのに気がついていながら今までずっとほったらかしにしてました。
iOS8対応でアップデートするついでにちょっと調べたら
[NSThread setThreadPriority:0.5];
でメインのスレッドのプライオリティを下げるとiOS7以降でもスムースな動きになるのがわかりました。
と思ったらこれを入れたら今度はiOS6での動きが変に…
スレッドのスケジューリングのアルゴリズムがiOS7以降で変わったみたいですね。
if ([[[[UIDevice currentDevice] systemVersion]
componentsSeparatedByString:@"."][0] intValue] >= 7) //iOS7 or later
{
[NSThread setThreadPriority:0.5];
}
としたら、ようやくiOS6でもiOS7以降でもちゃんと動くようになりました。
iOS6でもiOS8でも動くアプリたくさんあるけどみんなよくやってるなぁ…
使う人にはどのOSでも動いて当たり前なのだろうけど。
posted by one-hand-engineer at 09:31|
Comment(0)
|
TrackBack(0)
|
日記
|

|