快行感悟和總結2016.03.25

最近遇到的問題有兩個:
1,在做小車快跑的時候,想時刻定位司機汽車票在地圖的位置,因為我選擇自定義了結構體,開了一個timer定時去輪詢拿司機經緯度,可是發現內存一致在增加,降不下來,剛好遇到了手白的架構師8哥到上海技術分享,于是跪求抱大腿求看代碼求降低內存,最后發現,原來是自己定義的結構體使用錯誤,我把自定義的結構體當作OC對象中的屬性去使用:

屏幕快照 2016-03-25 下午11.12.54.png

這塊導致我在開線程不斷重復輪訓的時候一直增加內存。
。雖然說Xcode4.2之后提供了Automatic Reference Counting,但是身邊的IOS Coder都告訴我說不要使用這個,因為效率比較低。
然后據我現在的理解,有兩種對象需要手動釋放,即alloc創建的和new出來的。而基本數據類型和CGPoint(結構體),BOOL(算基本數據類型),還有寫在
@interface{}大括號里的也是不需要手動釋放的。
說的簡單點,只有h文件中@property的和m文件中alloc & new的對象需要釋放。
需要釋放的對象在viewDidUnload中要先制為Nil,最后需要在dealloc中release。所有的頁面硬引用如UITextView都需要做這樣的操作,除了頁面硬引用之外的對象創建、賦值、使用完后就必須立即釋放。

2.還有一個問題就是比對當前時間戳的問題。
我一直覺得都是秒數,直接轉化成秒數比大小不就行了么=。=
可是后來查了一下NSDate還是有對比時間時間戳類型的API
日期之間比較可用以下方法

  • (BOOL)isEqualToDate:(NSDate *)otherDate;
    與otherDate比較,相同返回YES
  • (NSDate *)earlierDate:(NSDate *)anotherDate;
    與anotherDate比較,返回較早的那個日期
  • (NSDate *)laterDate:(NSDate *)anotherDate;
    與anotherDate比較,返回較晚的那個日期
  • (NSComparisonResult)compare:(NSDate *)other;
    該方法用于排序時調用:
    . 當實例保存的日期值與anotherDate相同時返回NSOrderedSame
    . 當實例保存的日期值晚于anotherDate時返回NSOrderedDescending
    . 當實例保存的日期值早于anotherDate時返回NSOrderedAscending
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容