天天看點

25個增強iOS應用程式性能的提示和技巧(進階篇)(2)25個增強iOS應用程式性能的提示和技巧(進階篇)(2)

25個增強iOS應用程式性能的提示和技巧(進階篇)(2)

2013-04-16 14:56 破船之家 beyondvincent  字号:T | T

25個增強iOS應用程式性能的提示和技巧(進階篇)(2)25個增強iOS應用程式性能的提示和技巧(進階篇)(2)

在開發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,如下所示:

  1. - (NSDate*)dateFromUnixTimestamp:(NSTimeInterval)timestamp { 
  2.     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