11. iOS 类(class)和结构体(struct)有什么区别?Swift 中,类是引用类型,结构体是值类型。值类型在传递和赋值时将进行复制,而引用类型则只会使用引用对象的一个"指向"。所以他们两者之间的区别就是两个类型的区别。举个简单的例子,代码如下class Temperature { var value: Float = 37.0}class Person { var temp: T
YYModel作为开发过程中模型转换框架,为JSON与数据模型之间的相互转换,提供了高性能的解决方案。之前一直听别人说,YYModel内部实现是KVC进行的属性赋值。也认为是合理的,但是今天查看源码发现,里边其实并不是采用的setValue:forKey:的方式进行赋值的。而是采用了objc_msgSend方法调用了属性的setter方法进行赋值的。以后,跟别人说YYModel里可别再说是KVC了
转载 2023-07-25 14:24:31
1015阅读
关于源码学习自己的一些感悟 第一层:熟练使用; 第二层:读懂代码; 第三层:通晓原理; 第四层:如何设计; 自己学到了什么,还留有什么问题; 关于分享 关于线下演讲分享和线上文章分享,我一直觉得技术领域要学东西的话线上文章分享是最好的形式,一是它传播广,触达用户多;二是耗时少,写一篇文章或看一篇文章都比听一个分享花的时间少很多;三是可沉淀,读者可以反复看细节,可以沉淀下来不断被人搜索
1. YYModel 转化流程是怎么样的?1. 由模型类封装YYModelMeta首先,YYModel模型类进行一次YYClassInfo信息封装,其中包括对变量封装(YYClassIvarInfo),对属性封装(YYClassProperityInfo),对成员方法封装(YYClassMethodInfo)。其次,YYModel通过给用户提供的映射协议,让用户根据模型实现映射协议,同时基于封装
YYModel 是我写的一个 JSON 模型转换库,功能和 Mantle、JSONModel 差不多,但有着更好的性能和容错性。这里简单介绍一下 YYModel 的使用方法。 1. 简单的 JSON 与 Model 的转换 // JSON: { "uid":123456, "name":"Harry", "created":"1965-07-31T00:00:00+
转载 2023-10-16 23:16:07
401阅读
在进行 iOS 开发过程中,我们常常需要将 JSON 数组字符串转化为模型数组。在使用 YYModel 这个库时,常常会遇到如何有效地实现这一过程。在本文中,我将详细记录下这个过程,从背景定位到生态扩展,覆盖整个实现的技术架构。 ### 背景定位 在 iOS 开发中,经常需要处理来自服务器的 JSON 数据。以社交应用为例,我们常常会收到用户信息的列表,以 JSON 数组的形式返回。在这种情况
原创 7月前
81阅读
 这段时间一直在忙新的需求,没有时间来整理代码,发表自己技术博客,今天我们来看一下YYModel的底层解析以及如何使用,希望对大家有所帮助! 一 概述概括YYModel是一个轻量级的JSON模型转换库,它的思路非常清晰代码风格也很好,所以还是建议大家看一下底层实现的逻辑,也可以从源码加深对Runtime的理解。简介下面是YYModel第三方库的一些代码结构。YYModel的总共
转载 2024-05-21 13:14:42
272阅读
前言json与模型的转换框架很多,YYModel 一出,性能吊打同类组件,终于找了些时间观摩了一番,确实收益颇多,写下此文作为分享。由于该框架代码比较多,考虑到突出重点,压缩篇幅,不会有太多笔墨在基础知识上,很多展示源码部分会做删减,重点是在理解作者思维。读者需要具备一定的 runtime 知识,若想阅读起来轻松一些,最好自己打开源码做参照。源码基于 1.0.4 版本。一、框架的核心思路使用过框架
模型取代字典的好处使用字典的坏处一般情况下,设置数据和取出数据都使用“字符串类型的key”,编写这些key时,编译器不会有任何友善提示,需要手敲,eg:dict[@"name"] =@"Jack"; NSString*name = dict[@"name"];而手敲字符串key,key容易写错,并且Key如果写错了,编译器也不会有任何警告和报错,造成设错数据或者取错数据。使用模型的好处所谓模型
转载 2023-10-05 21:49:48
406阅读
承接上文《YYModel源码分析(一)YYClassInfo》 之前文章讲述了YYClassInfo如何将runtime类结构封装到OC层。这篇文章主要讲述YYModel是如何用NSObject分类,实现非侵入式json-model的(类型转换,容错,model转json会在其他文章中讨论)。写在开头NSObject+ YYModel中并不只有NSObject分类,还包含了_YYModelProp
# 在 iOS 中使用 YYModel 字段转模型的详细解析 在 iOS 开发中,处理 JSON 数据是一项常见的任务。虽然可以通过手动解析 JSON 创建模型,但是使用现成的库可以显著提高效率和可维护性。本文将介绍如何使用 **YYModel** 来将 JSON 字段转为模型,并展示其使用方法。 ## 什么是 YYModelYYModel 是一款高性能的 Objective-C JSO
原创 10月前
67阅读
# 如何实现iOS YYModel数组嵌套数组 ## 背景介绍 作为一名经验丰富的开发者,我将向您介绍如何在iOS开发中使用YYModel实现数组嵌套数组的功能。这对于刚入行的小白来说可能会有些困惑,但通过这篇文章,我将带领您一步一步完成这个任务。 ## 整体流程 1. 创建Model类 2. 设置YYModel的映射关系 3. 使用YYModel进行解析 ```mermaid journe
原创 2024-03-08 04:20:33
678阅读
当开发中你的模型中属性名称和 字典(JSON/XML) 中的key 不能一一对应时, 或者当字典中嵌套了多层字典数组时…, 以及教你如何用 MJExtension 配置类来统一管理你的模型配置, 下面罗列了开发中常见的一些特殊情况, 请参考!(MJExtension/github)最基本用法:// 将字典转为模型 Person *p = [Person mj_objectWithKeyValues
YYModel 是一个非常优秀的数据转模型模型转字典与JSON串的库。而且代码量非常少。可见作者架构,抽象,对OC理解已经到了一个很高的高度。希望站在巨人的肩膀上有一天自己也能达到。YYModel 库结构类含义YYClassInfo类信息YYModel管理头文件,使用过程中引入这一个即可NSObject+YYModel顶级类添加转换接口,方便进行转换字典数据转换为对象,将如下字典数据映射到相应的
TensorNet是什么?TensorNet是一个构建在TensorFlow之上针对广告推荐等大规模稀疏场景优化的分布式训练框架。TensorNet的目标是让所有使用TensorFlow的开发者可以快速的、方便的训练出稀疏参数超过百亿的超大模型。训练带有大规模稀疏特征模型的主要挑战在广告、搜索、推荐等场景下的深度模型都会存在大量的高维离散稀疏特征,训练带有高维稀疏特征的模型主要有两个问题:训练样本
Software Model-软件模型AMALTHEA软件模型可通过SWModel元素进行集中访问。Memory Information/内存信息。分析软件结构并将其映射到可用存储器需要包含元素的附加信息。此类信息的目标是元素的内存消耗大小,由DataUnit类型的size属性表示。 AbstractMemoryElement元素是一个提供此数据的通用元素。下图显示了扩展Abstra
 (一)ESJsonFormat是自动生成json属性的插件,其默认源是MJExtension。如果想要和YYModel嵌套使用,需要修改下源代码。  默认MJExtension: (1)在git上下载:https://github.com/EnjoySR/ESJsonFormat-Xcode(2)打开代码源文件,在ESJsonFormatManager.m中搜索methodC
转载 2023-12-11 22:19:14
1037阅读
特性高性能: 模型转换性能接近手写解析代码。自动类型转换: 对象类型可以自动转换,详情见下方表格。类型安全: 转换过程中,所有的数据类型都会被检测一遍,以保证类型安全,避免崩溃问题。无侵入性: 模型无需继承自其他基类。轻量: 该框架只有 5 个文件 (包括.h文件)。文档和单元测试: 文档覆盖率100%, 代码覆盖率99.6%。 使用方法 简单的 Model 与 JSON 相互转换// JSON
转载 2023-10-15 19:12:35
383阅读
# 使用YYModel实现JSON字符串转数组的完整指南 在iOS开发中,处理JSON数据是一个常见的任务。特别是当我们需要将JSON字符串转换为数组时,使用YYModel库会极大地简化这个过程。本文将为你逐步讲解如何实现这一目标。我们会从整件事情的流程开始,最后提供具体的代码示例和注释。 ## 整体流程 以下是将JSON字符串转换为数组的基本流程: | 步骤序号 | 步骤
原创 2024-08-10 05:39:59
281阅读
1. 数组转换字符串 join('') 或toString() [1,2,3,4] => '1234'注意:返回字符串,不改变原有数组toString()参数可无限嵌套数组let a = [1,2,3]; a.join(); //'1,2,3' 不传参数会添加逗号 a.join(''); //'123' a.toString(); //'1,2,3' ['a','b','c'].toS
转载 2023-11-09 12:23:42
176阅读
  • 1
  • 2
  • 3
  • 4
  • 5