快行感悟和总结2016.03.25

最近遇到的问题有两个:
1,在做小车快跑的时候,想时刻定位司机汽车票在地图的位置,因为我选择自定义了结构体,开了一个timer定时去轮询拿司机经纬度,可是发现内存一致在增加,降不下来,刚好遇到了手白的架构师8哥到上海技术分享,于是跪求抱大腿求看代码求降低内存,最后发现,原来是自己定义的结构体使用错误,我把自定义的结构体当作OC对象中的属性去使用:

快行感悟和总结2016.03.25_第1张图片
屏幕快照 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

你可能感兴趣的:(快行感悟和总结2016.03.25)