美文网首页
快行感悟和总结2016.03.25

快行感悟和总结2016.03.25

作者: 画一幅_素颜 | 来源:发表于2016-03-25 23:25 被阅读0次

    最近遇到的问题有两个:
    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

    相关文章

      网友评论

          本文标题:快行感悟和总结2016.03.25

          本文链接:https://www.haomeiwen.com/subject/wuddlttx.html