iosapp在iossimulator閃退問題。 |
答題得分者是:P.D.
|
stacker_liew
中階會員 發表:59 回覆:168 積分:65 註冊:2004-05-17 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
xe 開發的app在Win/Android 相對是要穩定多(不談範例程式, 就我個人設計的經驗來說), ios的確閃退情況嚴重, 但要抓問題真不容易, 我曾經為一個ios閃退抓一個月, 後來發現是設計順序上的問題, 把流程換一下就排除了, 以下建議
1, 盡量減少在 on Create 事件寫太多物件的 create功能, 因為 Andorid/ios 沒有 onIdle 的模式, 所以有一些原本在win上設計於 credate完畢要做的東東, 在win可在 onidle 下驅使, 但 android/ios不允許, 如果放在 on Create就會閃退, 也不建議在 on Active 下操作 2. 把最有可能出問題的地方先mark起來, 再一行行重新跑, 像我曾經發生上一秒是好的, 下一秒不知道發生什麼事, 在 ios就是閃退, 所以把發生閃退前可能的程式段全部mark起來, 再丟到ios下, 如果不會, 就代表是 mark 的部份有問題, 一行行加回來測到會退, 當然有時候也會全部加回來(一行行)又不會, 這就是最惱人的地方 3. 編譯 ios/andoird 時, 不要每次都使用run(f9)的方式進行, 沒錯, f9是很方便, 可以complier->building->depoly 一氣呵成, 但有時會失靈, 要先做complier, 然後再進行 build, 最後再用 deploy (或f9) 丟上去, 不要問我為什麼? 我不知道, 但我的電腦大約20次會發生一次(如果你是win/andorid/ios 同一支開發不斷的切換編譯, 則頻率更高) 4. 程式內容儘量使用原型寫法, 例如 var.tointeger, var.tostring, 不要用傳統的 strtoint(var), inttostr(var) 這類 5. 要注意形別, 例如宣告 var : word 形別, 那 var 在計算上 word 是 0~65535值, 我就遇到 當var 被運算到 -1 時, ios閃退(在Android不會), 只能說 ios 要求比較龜毛 6. 還有xe 雖然可以把很多元件以類似group的方式組合起來成上下層的做法, 但我也曾遇到(這部份還是李維大師指點才得以解決), 雖然xe允許這麼做, 也很方便, 但兩個元件的原始來源不是同一父物件的來源, 就可能造成xe發生錯誤(如出現 item no found), 只是我比較好奇, xe為什麼不能自我判斷排除... 當然還有很多, 無法全部說明, 還是那句老話, 自己覺得有問題的地方先排除掉, 再一一弄回來, 大約有7,8成可解決, 只是耗時間 還有, 有時debug 是可以, 不代表delpoy 行 以上純屬個人經驗談, 不代表官方立場 |
stacker_liew
中階會員 發表:59 回覆:168 積分:65 註冊:2004-05-17 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
OneChen
初階會員 發表:7 回覆:33 積分:43 註冊:2014-03-27 發送簡訊給我 |
|
stacker_liew
中階會員 發表:59 回覆:168 積分:65 註冊:2004-05-17 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
stacker_liew
中階會員 發表:59 回覆:168 積分:65 註冊:2004-05-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |