25個增強iOS應用程式性能的提示和技巧(進階篇)(2)
2013-04-16 14:56 破船之家 beyondvincent 字号:T | T
在開發iOS應用程式時,讓程式具有良好的性能是非常關鍵的。這也是使用者所期望的,如果你的程式運作遲鈍或緩慢,會招緻使用者的差評。然而由于iOS裝置的局限性,有時候要想獲得良好
AD:網+線下沙龍 | 移動APP模式創新:給你一個做APP的理由>>
25) 盡量避免Date格式化
如果有許多日期需要使用NSDateFormatter,那麼需要小心對待了。如之前(重用花銷很大的對象)所提到的,無論什麼時候,都應該盡量重用NSDateFormatters。
然而,如果你需要更快的速度,那麼應該使用C來直接解析日期,而不是NSDateFormatter。Sam Soffes寫了一篇文章,其中提供了一些解析ISO-8601格式日期字元的串代碼。你隻需要簡單的調整一下其中的代碼就可以滿足自己特殊的需求了。
這聽起來不錯把——不過,你相信這還有更好的一個辦法嗎?
如果你自己能控制處理日期的格式,那麼可以選擇 Unix timestamps(http://en.wikipedia.org/wiki/Unix_time)。Unix timestamps是一個簡單的整數,代表了從新紀元時間(epoch)開始到現在已經過了多少秒,通常這個新紀元參考時間是00:00:00 UTC on 1 January 1970。
你可以很容易的見這個時間戳轉換為NSDate,如下所示:
- - (NSDate*)dateFromUnixTimestamp:(NSTimeInterval)timestamp {
- return [NSDate dateWithTimeIntervalSince1970:timestamp];
- }
上面這個方法比C函數還要快!
注意:許多網絡APIs傳回的時間戳都是毫秒,是以需要注意的是在将這個時間戳傳遞給dateFromUnixTimestamp之前需要除以1000。
何去何從?
強烈建議對程式性能優化感興趣的讀者看看下面列出來的WWDC視訊。在看視訊之前,你需要注冊一個Apple ID(注冊後就可以觀看所有WWDC2012的視訊):
#406: Adopting Automatic Reference Counting
#238: iOS App Performance: Graphics and Animations
#242: iOS App Performance: Memory
#235: iOS App Performance: Responsiveness
#409: Learning Instruments
#706: Networking Best Practices
#514: OpenGL ES Tools and Techniques
#506: Optimizing 2D Graphics and Animation Performance
#601: Optimizing Web Content in UIWebViews and Websites on iOS
#225: Up and Running: Making a Great Impression with Every Launch
下面這些視訊來自WWDC 2011 ,也非常有用:
#308: Blocks and Grand Central Dispatch in Practice
#323: Introducing Automatic Reference Counting
#312: iOS Performance and Power Optimization with Instruments
#105: Polishing Your App: Tips and tricks to improve the responsiveness and performance
#121: Understanding UIKit Rendering
轉載于:https://www.cnblogs.com/piaojin/p/5443214.html