当前位置: 首页 > news >正文

【TabBar嵌套Navigation案例-JSON的简单使用 Objective-C语言】

一、JSON的简单使用

1.我们先来看一下示例程序里边,产品推荐页面,

通知

在我们这个产品推荐页面里面,

通知

它是一个CollectionViewController,注册的是一个xib的一个类型,xib显示这个cell,叫做item,然后,这个邮箱大师啊,包括这个图标,以及这些东西,都是从哪儿来的呢,都是从一个,也是一个数据文件,只不过它是一个JSON了,不叫plist,

我们说,你如果写成plist形式,我们说,这个xib,可能是一个字典,这里边,有一个Key,就是图标,有一个Key,就是文字,

然后呢,这个JSON呢,也是可以达到同样的目的,它都可以用来存储数据,包括字典啦、数组啦、之类的东西,

接下来,我们就来给大家去看一下啊,这个文件,

通知

在我们的示例程序里边,有一个叫做more_project.json,的文件,打开,

通知

文字太小了啊,我用xCode打开吧,

通知

这个呢,就是我们JSON的一个文件,它本质上,就是以一定格式写出来的字符串而已,它就是一个字符串,只不过它有一定的格式,我们管这种格式,叫做JSON,它本质上,也是一坨字符串,

然后呢,这个里边,首先,这儿有一个中括号,

通知

中括号,表示数组,

大括号,表示字典,

实际上,这一段儿数据,这整个这个文件,这一坨字符串,表示的什么东西,最外面,是一个中括号,是一个数组,就跟我们plist,最外层的根节点,是一个Array,是一样的,然后呢,这个Array下面,又有很多大括号的东西,字典,plist里边,也是一样的,相当于是Array下面,有很多的Dictionary,然后呢,Dictionary,我们说,字典是键值对的,它这个里边,冒号左边,就是Key,冒号右边,就是Value,这就是一个字典的Key-Value,它们的功能,都是一样的,都是可以用来保存一些数据,不一样的,仅仅是格式的区别,

我们plist,用这个文字的形式,去打开的话,它是一堆XML,一种标签儿的一种格式,然后呢,我们这个JSON,是这种格式,实际上,大家以后在学习网络以后呢,传输网络的一些数据啊,都是用JSON的,然后,如果写过网络开发的同学,就会对JSON不陌生啊,然后呢,这就是我们说的JSON的格式,然后呢,我们主要是来学习一下解析它,

这个里边呢,记着,JSON和plist,就是格式不一样,功能都是一样的,都是用来保存一些数据的,接下来,我们就来解析一下啊,

2.然后呢,我们先新建一个项目,

通知

06-json解析,

通知

首先呢,来到我们的ViewController,再把我们刚才的文件,JSON,拖过来,more_project.json,

通知

点击Finish,

通知

解析这个json,

通知

解析以后呢,我们也是要以模型的形式,跟plist一样,要字典转模型,等等一些东西,接下来,我们就一步一步来做,

3.首先呢,我们在这个ViewController里边,直接去解析它,

首先,在interface里边,我们说,plist里面,根节点是什么,我在外面,就声明一个什么,JSON,也是一样,

通知

根节点是一个Array,我在这个里边,也要有一个Array,

@property(nonatomic,strong)NSArray *products;

相关文章:

【TabBar嵌套Navigation案例-JSON的简单使用 Objective-C语言】

一、JSON的简单使用 1.我们先来看一下示例程序里边,产品推荐页面, 在我们这个产品推荐页面里面, 它是一个CollectionViewController,注册的是一个xib的一个类型,xib显示这个cell,叫做item,然后,这个邮箱大师啊,包括这个图标,以及这些东西,都是从哪儿来的呢,都是从…...

通过鼠标移动来调整两个盒子的宽度(响应式)

DOM结构&#xff1a; <div class"courer"> // 外层盒子<div class"dividing-line" title"拖动"></div> // 拖动的那个线<div class"course-title-box"> // 第一个盒子<div class"course-content-…...

React Zustand状态管理库的使用

Zustand 是一个轻量级的状态管理库&#xff0c;适用于 React 和浏览器环境中的状态管理需求。它由 Vercel 开发并维护&#xff0c;旨在提供一种简单的方式来管理和共享状态。Zustand 的设计理念是尽可能简化状态管理&#xff0c;使其更加直观和易于使用。 Zustand 官网点击跳转…...

pyrosetta MoveMap介绍

在 PyRosetta 中,MoveMap 是一个非常重要的类,用来控制蛋白质分子中哪些部分可以在某些操作(如折叠、旋转、优化等)中被移动。MoveMap 允许你精确地指定哪些残基、键角或原子可以进行特定的运动,从而帮助你在蛋白质结构预测、优化和设计中进行灵活的控制。 MoveMap 的功能…...

在线安全干货|如何更改IP地址?

更改IP地址是一个常见的需求&#xff0c;无论是为了保护个人隐私、绕过地理限制还是进行商业数据分析。不同的IP更改方法适用于不同的需求和环境。但请注意&#xff0c;更改IP地址应在合法场景下进行&#xff0c;无论使用什么方法&#xff0c;都需要在符合当地网络安全法律法规…...

【C++】【网络】【Linux系统编程】单例模式,加锁封装TCP/IP协议套接字

目录 引言 获取套接字 绑定套接字 表明允许监听 单例模式设计 完整代码示例 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 引言 有关套接字编程的细节和更多的系统调用课参考《UNIX环境高级编程》一书&#xff0c;可以在如下网站搜索电子版&#xff0c;该书在第16章详…...

Matplotlib在运维开发中的应用

在现代运维开发中,数据可视化扮演着越来越重要的角色。它能帮助我们更直观地理解系统状态,快速发现潜在问题,并辅助决策制定。Python的Matplotlib库作为一个强大而灵活的绘图工具,在运维领域有着广泛的应用。本文将探讨Matplotlib在运维开发中的常见应用场景,并提供实用的代码示…...

centos下nvme over rdma 环境配置

nvme over rdma 环境配置 本文主要介绍NVMe over RDMA的安装和配置。关于什么是NVMe over Fabrics,什么是NVMe over RDMA&#xff0c;本文就不做介绍了&#xff0c;网上资料一大堆。 可以看看什么是NVMe over Fabrics&#xff1f; RDMA&#xff08;全称&#xff1a;Remote Dir…...

【C++】——多态详解

目录 1、什么是多态&#xff1f; 2、多态的定义及实现 2.1多态的构成条件 ​2.2多态语法细节处理 2.3协变 2.4析构函数的重写 2.5C11 override 和 final关键字 2.6重载—重写—隐藏的对比分析 3、纯虚函数和抽象类 4、多态的原理分析 4.1多态是如何实现的 4.2虚函数…...

STM32上实现FFT算法精准测量正弦波信号的幅值、频率和相位差(标准库)

在研究声音、电力或任何形式的波形时&#xff0c;我们常常需要穿过表面看本质。FFT&#xff08;快速傅里叶变换&#xff09;就是这样一种强大的工具&#xff0c;它能够揭示隐藏在复杂信号背后的频率成分。本文将带你走进FFT的世界&#xff0c;了解它是如何将时域信号转化为频域…...

计算机毕业设计 农场投入品运营管理系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…...

【笔记】2.1 半导体三极管(BJT,Bipolar Junction Transistor)

一、结构和符号 1. 三极管结构 常用的三极管的结构有硅平面管和锗合金管两种类型。各有PNP型和NPN型两种结构。 左图是NPN型硅平面三极管,右图是PNP型锗合金三极管。 从图中可见平面型三极管是先在一块大的金属板上注入杂质使之变成N型,然后再在中间注入杂质使之变成P型,…...

企业中文档团队的三种组织形式

大家好&#xff01;今天咱们来聊聊企业里文档团队都是怎么组织的。 企业中&#xff0c;常见的文档团队组织形式有三种。 首先&#xff0c;最常见的就是集中式的文档团队。就是说&#xff0c;公司里头有几个不同的部门&#xff0c;每个部门都需要做文档。于是呢&#xff0c;公…...

古诗词四首鉴赏

1、出自蓟北门行 唐李白 虏阵横北荒&#xff0c;胡星曜精芒。 羽书速惊电&#xff0c;烽火昼连光。 虎竹救边急&#xff0c;戎车森已行。 明主不安席&#xff0c;按剑心飞扬。 推毂出猛将&#xff0c;连旗登战场。 兵威冲绝漠&#xff0c;杀气凌穹苍。…...

全国行政区划下载(高德、阿里、天地图)

一、网站链接&#xff1a; 阿里云数据可视化平台&#xff1a; DataV.GeoAtlas地理小工具系列 (aliyun.com) 链接: link 高德地图API获取行政区域&#xff1a; 高德地图API获取行政区域 (naivemap.com) 链接: link 天地图服务中心&#xff1a; 天地图 服务中心 (tianditu.g…...

Springboot提升-MapStruct组件使用

文章目录 1. 添加依赖2. 创建映射接口3. 在Spring Boot中使用MapStruct映射器4. 配置MapStruct 在Spring Boot项目中使用MapStruct可以帮助你更方便地管理对象之间的映射逻辑。下面是一些基本步骤来设置和使用MapStruct&#xff1a; 1. 添加依赖 首先&#xff0c;你需要在项目…...

如何借助ChatGPT提升论文质量:实战指南

在学术写作的过程中,非英语母语人士经常面临诸多挑战,尤其是当论文要提交给国际期刊时,语言规范和表达逻辑成为了必须克服的障碍。本文将通过实例详细解析如何利用ChatGPT来润色论文,使其达到发表级别的标准。 一、优秀学术论文的写作特点 要让学术论文在国际期刊上发表,…...

NLP开端:Tokenizer-文本向量化

Tokenizer 问题背景 An was a algorithm engineer 如上所示&#xff0c;在自然语言处理任务中&#xff0c;通常输入处理的数据是原始文本。但是算法模型自能处理数值类型&#xff0c;因此需要找到一种方法&#xff0c;将原始的文本数据转换为数值类型的数据。这就是分词器所…...

STM32 MCU学习资源

STM32 MCU学习资源 文档下载需要注册登录账号 ST公司官方文档 STM32 MCU开发者资源 STM32F446 相关PDF文档 ST中文论坛 中文译文资料 ST MCU中文官网 其他学习资源 野火STM32库开发实战指南 零基础快速上手STM32开发&#xff08;手把手保姆级教程&#xff09; 直接使…...

Python知识点:Python内存管理与优化

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; Python内存管理与优化指南 Python是一种动态类型的解释型语言&#xff0c;它提…...

SpringBoot Kafka发送消息与接收消息实例

前言 Kafka的基本工作原理 我们将消息的发布&#xff08;publish&#xff09;称作 producer(生产者)&#xff0c;将消息的订阅&#xff08;subscribe&#xff09;表述为 consumer&#xff08;消费者&#xff09;&#xff0c;将中间的存储阵列称作 broker(代理)&#xff0c;这…...

【资料分析】刷题日记2

第一套 √ 2013-2016一共有13&#xff0c;14&#xff0c;15&#xff0c;16四年&#xff0c;亦即16 - 13 1 4年 √ 是多少倍 ③vs④&#xff1a;都是只给出了年均增速&#xff0c;③求的是其中一年的&#xff0c;无法确定&#xff1b;④求的是这个时段总共的&#xff0c;可…...

Aigtek功率放大器怎么选择型号

功率放大器在各个领域中都扮演着重要的角色&#xff0c;用于增强信号的幅度&#xff0c;以满足特定的需求。在选择功率放大器型号时&#xff0c;需要综合考虑多个因素&#xff0c;如应用领域、功率要求、频率范围、输入输出特性等。下面安泰电子官网将从这些方面详细介绍功率放…...

【RabbitMQ】重试机制、TTL

重试机制 在消息从Broker到消费者的传递过程中&#xff0c;可能会遇到各种问题&#xff0c;如网络故障、服务不可用、资源不足等&#xff0c;这些问题都可能导致消息处理失败。为了解决这些问题&#xff0c;RabbitMQ提供了重试机制&#xff0c;允许消息在处理失败之后重新发送…...

Linux用户及用户组操作命令笔记

1.用户概念及作用 用户&#xff1a;指的是Linux操作系统中用于管理系统或者服务的人 Linux下一切皆文件&#xff0c;所以用户管理的是相应的文件 基本上分为两种&#xff1a; 基本管理&#xff1a;文件的创建、删除、复制、查找、打包压缩等&#xff1b;文件的权限增加、减…...

threejs加载高度图渲染点云,不支持tiff

问题点 使用的point来渲染高度图点云&#xff0c;大数据图片无效渲染点多&#xff08;可以通过八叉树过滤掉无效点增加效率&#xff0c;这个太复杂&#xff09;&#xff0c;但是胜在简单能用 效果图 code 代码可运行&#xff0c;无需npm <!DOCTYPE html> <html la…...

MySQL面试题——第二篇

1. MySQL的优化手段有哪些&#xff1f; MySQL的常见的优化手段有以下五种 1. 查询优化 避免select * ,只查询需要的字段。小表驱动大表&#xff0c;即小的数据集驱动大的数据集&#xff0c;比如当B表的数据集小于A表时&#xff0c;用in优化exist。两表执行顺序是先查B表&#x…...

Unity Transform 组件

在 Unity 中&#xff0c;Transform 是一个非常重要的组件&#xff0c;它定义了物体的位置、旋转和缩放&#xff0c;几乎每个 GameObject 都包含一个 Transform 组件。Transform 组件的主要属性如下&#xff1a; 1. position 表示物体在世界空间中的位置。可以通过 transf…...

LeeCode 3. 无重复字符的最长子串

经典方法滑动窗口:(两个指针) 针对这个题我们首先假定两个指针 left 和 right 分别指在数组最左端. 然后两个变量记录长度length和maxlength. 并且因为不能有重复的字符,我们使用HashSet结构来当收集结果的表. 随着右指针不断往右移,左指针和右指针之间的就为截取的字符,而这…...

使用canal.deployer-1.1.7和canal.adapter-1.1.7实现mysql数据同步

1、下载地址 --查看是否开启bin_log日志&#xff0c;value on表示开启 SHOW VARIABLES LIKE log_bin; -- 查看bin_log日志文件 SHOW BINARY LOGS; --查看bin_log写入状态 SHOW MASTER STATUS; --查看bin_log存储格式 row SHOW VARIABLES LIKE binlog_format; --查看数据库服…...