240 发简信
IP属地:江苏
  • 120
    Alamofire 安全认证ServerTrustPolicy

    前言 在互联网迅速发展的年代,基本上天天都在跟网络打交道。那么,在网络的通讯中怎么保证信息的安全性呢?这篇文章,我们就来讲讲,Alamofire作为iOS开发中一个非常优秀的...

  • 120
    渲染原理学后简短笔记

    UIView和CALayer的关系 其中,视图的职责是 创建并管理 图层,以确保当子视图在层级关系中 添加或被移除 时,其关联的图层在图层树中也有相同的操作,即保证视图树和图...

  • 120
    SnapKit浅析,原理

    SnapKit的原理是啥,或者说是怎么实现自动布局的? SnapKit是Swift开发中常用的自动布局的三方库,虽然他让我们写UI布局方便了很多,但是他还是基于系统提供的AP...

  • 不好意思,看到第二个评论,才理解你说的,之前用OC时还真没遇到这种场景

    HandyJSON浅析(二)

    咱们在HandyJSON浅析(一)中讲了HandyJSON是怎么从类信息中获取这个类中的属性个数、以及属性信息,比如属性在实例中的偏移量,类型信息等,有了这些信息之后,剩下的...

  • 发现两个人问怎么做到一个属性,对应多个字段,本来是回复了 "小怪兽_xxx"的,但是可能是简书bug,显示不出来,这里统一说一下,比如服务端返回的可能是title或者text,但是我想用一个统一的属性name访问,在OC中的YYModel里是这样做的
    + (nullable NSDictionary<NSString *, id> *)modelContainerPropertyGenericClass {
    return @{
    @"name" : @[@"title" ,@"text"],
    };
    }

    咱们从他的源码看一下他的实现原理,其实就是遍历你配置的key,拿着key从服务端返回的数据里找对用的value,没找到就继续用下一个key找,找到就结束循环,不会再去用下一个key找,源码如下

    static force_inline id YYValueForMultiKeys(__unsafe_unretained NSDictionary *dic, __unsafe_unretained NSArray *multiKeys) {
    id value = nil;
    for (NSString *key in multiKeys) {
    if ([key isKindOfClass:[NSString class]]) {
    value = dic[key];
    if (value) break;
    } else {
    value = YYValueForKeyPath(dic, (NSArray *)key);
    if (value) break;
    }
    }
    return value;
    }

    所以咱们要是在swift中可以不用借助HandyJSON,直接在mode里加个计算属性就行了,比如
    class TestModel {
    var title = "title"
    var text = ""

    var name:String {
    return title.count > 0 ? title :text
    }
    }

    HandyJSON浅析(二)

    咱们在HandyJSON浅析(一)中讲了HandyJSON是怎么从类信息中获取这个类中的属性个数、以及属性信息,比如属性在实例中的偏移量,类型信息等,有了这些信息之后,剩下的...

  • iOS国际化多语参数顺序,格式化参数顺序、format参数顺序

    假如UI有个界面文案是某个人打了某个动物 咱们中文翻译里会写成 在代码里会写成 这时候英文翻译回来了(很多语言的语序和中文不一样) 那就界面显示的是 所以当需要国际化的文案有...

  • 120
    CocoaPods使用总结

    使用CocoaPods也有很长一段时间了,最近几个月的时间里也主导了公司私有Pods的创建和使用。在此期间踩过了不少坑,在踩坑的过程中也收获了不少经验,更加熟练地掌握了Coc...

  • 上述Demo中,id是类的属性,cat_id是返回的json中的字段名,要是想实现类中定义的多个不同的属性,对应json中同一个字段,那重复写几个类似的应该就可以了,类似 mapper <<< self.id <-- "cat_id"、mapper <<< self.otherId <-- "cat_id"、mapper <<< self.otherId2 <-- "cat_id"

    要是实现:类中定义的一个属性,对应返回json中多个字段,那这个好像没使用场景吧,并且会覆盖,以最后写的一个mapper <<< self.id <-- "cat_id"为准

    或者意思是一个属性对应多个json返回字段的拼接?

    HandyJSON浅析(二)

    咱们在HandyJSON浅析(一)中讲了HandyJSON是怎么从类信息中获取这个类中的属性个数、以及属性信息,比如属性在实例中的偏移量,类型信息等,有了这些信息之后,剩下的...

  • 120
    HandyJSON浅析(二)

    咱们在HandyJSON浅析(一)中讲了HandyJSON是怎么从类信息中获取这个类中的属性个数、以及属性信息,比如属性在实例中的偏移量,类型信息等,有了这些信息之后,剩下的...

  • 120
    HandyJSON浅析(一)

    HandyJSON的基本原理就是从类信息里获取所有属性的特征,包括名称,属性在内存里的偏移量、属性的个数、属性的类型等等,然后将服务端返回来的数据用操作内存的方式将数值写入对...