最近遇到的問(wèn)題有兩個(gè):
1,在做小車快跑的時(shí)候,想時(shí)刻定位司機(jī)汽車票在地圖的位置,因?yàn)槲疫x擇自定義了結(jié)構(gòu)體,開(kāi)了一個(gè)timer定時(shí)去輪詢拿司機(jī)經(jīng)緯度,可是發(fā)現(xiàn)內(nèi)存一致在增加,降不下來(lái),剛好遇到了手白的架構(gòu)師8哥到上海技術(shù)分享,于是跪求抱大腿求看代碼求降低內(nèi)存,最后發(fā)現(xiàn),原來(lái)是自己定義的結(jié)構(gòu)體使用錯(cuò)誤,我把自定義的結(jié)構(gòu)體當(dāng)作OC對(duì)象中的屬性去使用:
這塊導(dǎo)致我在開(kāi)線程不斷重復(fù)輪訓(xùn)的時(shí)候一直增加內(nèi)存。
。雖然說(shuō)Xcode4.2之后提供了Automatic Reference Counting,但是身邊的IOS Coder都告訴我說(shuō)不要使用這個(gè),因?yàn)樾时容^低。
然后據(jù)我現(xiàn)在的理解,有兩種對(duì)象需要手動(dòng)釋放,即alloc創(chuàng)建的和new出來(lái)的。而基本數(shù)據(jù)類型和CGPoint(結(jié)構(gòu)體),BOOL(算基本數(shù)據(jù)類型),還有寫在
@interface{}大括號(hào)里的也是不需要手動(dòng)釋放的。
說(shuō)的簡(jiǎn)單點(diǎn),只有h文件中@property的和m文件中alloc & new的對(duì)象需要釋放。
需要釋放的對(duì)象在viewDidUnload中要先制為Nil,最后需要在dealloc中release。所有的頁(yè)面硬引用如UITextView都需要做這樣的操作,除了頁(yè)面硬引用之外的對(duì)象創(chuàng)建、賦值、使用完后就必須立即釋放。
2.還有一個(gè)問(wèn)題就是比對(duì)當(dāng)前時(shí)間戳的問(wèn)題。
我一直覺(jué)得都是秒數(shù),直接轉(zhuǎn)化成秒數(shù)比大小不就行了么=。=
可是后來(lái)查了一下NSDate還是有對(duì)比時(shí)間時(shí)間戳類型的API
日期之間比較可用以下方法
- (BOOL)isEqualToDate:(NSDate *)otherDate;
與otherDate比較,相同返回YES - (NSDate *)earlierDate:(NSDate *)anotherDate;
與anotherDate比較,返回較早的那個(gè)日期 - (NSDate *)laterDate:(NSDate *)anotherDate;
與anotherDate比較,返回較晚的那個(gè)日期 - (NSComparisonResult)compare:(NSDate *)other;
該方法用于排序時(shí)調(diào)用:
. 當(dāng)實(shí)例保存的日期值與anotherDate相同時(shí)返回NSOrderedSame
. 當(dāng)實(shí)例保存的日期值晚于anotherDate時(shí)返回NSOrderedDescending
. 當(dāng)實(shí)例保存的日期值早于anotherDate時(shí)返回NSOrderedAscending