首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS14开发-网络

基础知识 App如何通过网络请求数据? ? 客户服务器模型 App 通过一个 URL 向特定的主机发送一个网络请求加载需要的资源。...然后根据这些信息,进行相应的业务逻辑处理,最后通过主机将处理后的数据返回(返回的数据一般为 JSON 字符串)。 App 接收到主机返回的数据,进行解析处理,最后展示到界面上。...请求响应过程 JSON JavaScript Object Notation。 一种轻量级的数据格式,一般用于数据交互。 服务端返回给 App 客户端的数据,一般都是 JSON 格式。...JSON 数据的 value 类型: 数字(整数或浮点数) 字符串("表示) 布尔值(true 或 false) 数组([]表示) 对象({}表示) null 解析 厘清当前 JSON 数据的层级关系...") } 两个协议 WKNavigationDelegate:判断页面加载完成,只有页面加载完成后才能在实现

2.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS高质量的动画实现解决方案——Lottie

    二、一个简单的小Demo     先来看一个简单的小例子,我LottieFiles上找了一个骑行动画的JSON文件,此文件的下载地址如下: https://www.lottiefiles.com/download...:(nonnull NSString *)animationName NS_SWIFT_NAME(init(name:)); 你也可以从自定义的Bundle或者使用其他方式来加载JSON文件: //从自定义的...NSBundle *)bundle NS_SWIFT_NAME(init(name:bundle:)); //直接从JSON字典加载动画 + (nonnull instancetype)animationFromJSON...:(nonnull NSDictionary *)animationJSON NS_SWIFT_NAME(init(json:)); //直接通过JSON文件加载动画 + (nonnull instancetype...(init(json:bundle:)); //从URL加载 - (nonnull instancetype)initWithContentsOfURL:(nonnull NSURL *)url; 其实无论上面哪种方式加载动画

    3K20

    iOS - RxSwift 项目实战记录

    // Response分类,Moya请求完进行Json转模型或模型数组 ├── Model │ └── LXFModel.swift // 模型 ├── Protocol...概念点 RxDataSources是以section来做为数据结构来传输,这点很重要,可能很多同学会比较疑惑这句话吧,我在此举个例子,传统的数据源实现的方法中有一个numberOfSection,我们很多情况下只需要一个...可以看到我为Output添加了一个序列,类型为我们自定义的LXFSection数组,Input里面添加了一个请求类型(即要请求什么数据,比如首页的数据) 我们通过 transform 方法将input...PublishSubject 的特点:即可以作为Observable,也可以作为Observer,说白了就是可以发送信号,也可以订阅信号 // 外界通过该属性告诉viewModel加载数据(传入的值是为了标志是否重新加载...,使用output的requestCommond发射信息,告诉viewModel我们要加载数据 viewModel请求数据处理完json转模型或模型数组后修改models,当models的值被修改的时候会发信号给

    2.9K41

    是什么使代码 “Swifty”? —— Expressive

    假设我们编写了一个当前称为getContent的函数,该函数会为捆绑的Content模型加载数据,然后对其进行解码: func getContent(name: String) -> Content?...{ guard let url = Bundle.main.url( forResource: name, withExtension: "json" )...是否将其通过网络加载或其他? 此外,万一发生错误,它仅返回nil的事实会使万一发生任何故障而使调试变得更加困难——因为我们将无法得知实际出了什么问题。...结语 在我看来,编写“ Swifty”代码不是要使用尽可能多的语言功能,也不是通过部署Swift的最高级功能来解决简单的问题来使我们的代码不必要地变得复杂——而是要调整我们设计和表达代码的方式,并它具有...通过充分利用标准库,并通过表达性命名和API设计传达我们的代码意图,使我们的代码使用Swift的类型系统来确保正确性并使其功能更加清晰,我们常常最终得到了更好的代码匹配Swift本身,这难道不是编写“

    64310

    Swift-MVVM 简单演练(一)

    并且对比一下swift和objective-c的延迟加载异同点 模拟延迟加载数据 /// 加载数据 override func loadData() { // 模拟`延时`加载数据...", atomically: true) 将main.json拖入到文件中,通过加载这个main.json配置界面控制器内容。...如果没有 通过网络请求加载默认的.json文件 如果有 直接使用沙盒里面保存的.json文件 网络请求异步加载新的.json文件,等下一次用户再次启动APP的时候就可以显示比较新的配置文件了 AppDelegate...HQAViewController中加载数据测试 /// 加载数据 override func loadData() { let urlString = "https://api.weibo.com...viewModel的使命 字典转模型逻辑 上拉 / 下拉数据处理逻辑 下拉刷新数据数量 本地缓存数据处理 初体验 因为MVVMswift中都是没有父类的,所以先说下关于父类的选择问题 如果分类需要使用

    10.3K51

    Swift + RxSwift MVVM 模块化项目实践

    ,reloadTrigger代表点击重新加载的事件,经过参数格式化、发送网络请求、数据解析等数据处理,最后只需关注解析成功之后的 Model 数据然后更新 UI 界面。...RxSwift的使用 ---- 项目中大部分的逻辑处理是借助 RxSwift 实现的响应式编程,当界面上的每个操作都会转换为一个信号然后通过对信号的各种加工网络请求,到返回的数据 JSON 解析以及错误对象的处理...,需要界面上展示网络错误,并且显示重新加载的按钮,或者是如果在调用相机获取授权的时用户没有授权的时候,需要提示给用户授权相关的信息,等等这些逻辑处理都可以通过流的形式处理,处理用户网络错误加载失败的时候...,通过 RxSwift 的一个很简单的 Api:withLatestFrom就能实现数据重新加载,而不需要记住各种复杂的参数。...,功能很简单,如果感兴趣的可以下载看下 总结 本文简单介绍了自己 Swift 模块化项目中的一些实践经验,借助 RxSwift 实现 MVVM 框架的设计,内容比较杂,供大家参考,随着 Swift 5

    3.2K101

    App架构设计经验谈:技术选型

    加载服务器的H5页面比较简单,WebView只要load一下URL就可以了。加载本地的H5页面,则需要将H5文件存放在本地,包括关联的CSS和JS文件。...Objective-C/Swift项目中选择了Swift,主要基于三个原因: Swift真的很简洁,生产效率很高; Swift取代Objective-C是必然的趋势; 目前iOS只有我一个人开发,...再推荐几个关于Swift的第三方库: Alamofire:Swift版本的网络基础库,和AFNetworking是同一个作者 AlamofireImage:基于Alamofire的图片加载库 ObjectMapper...:Swift版本的Json和Model转换库 AlamofireObjectMapper:Alamofire的扩展库,结合了ObjectMapper,自动将JSON的Response数据转换为了Swift...我实际项目中思考架构时,也不会想着要用哪种模式,我只思考现阶段,以现有的人力资源和时间资源,如何才能更快更好地完成需求,适当考虑下如何为后期扩展或重构做准备。

    1.4K10

    如何使用 SPM 插件从 Pkl 配置文件生成 Swift 接口

    它允许开发人员通过类型和内置验证安全、直观地设计数据模型。 作为苹果语言,Pkl 有一个可用于从 .pkl 配置文件生成 Swift 接口的套件工具,这是它与其他语言的开发者有所不同的地方。.../download/0.2.3/pkl-gen-swift-macos.bin -o pkl-gen-swift chmod +x pkl-gen-swift 现在,让我们通过终端中运行以下命令来从...在此目录中,创建以下文件夹结构: Pkl.artifactbundle ├── info.json ├── pkl-0.25.2-macos │ └── bin │ └── pkl info.json...加载 Pkl 配置 现在我们已经生成了 Swift 接口,可以使用以下代码将其加载到我们的应用程序中,路径 Sources/ClientExample/main.swift 下源代码如下: import...因此,我必须手动设置 PKL_EXEC 环境变量示例可执行文件中。 总结 本文介绍了 Pkl,这是苹果推出的一种专用于配置的新编程语言。它允许开发人员通过类型和内置验证安全地设计数据模型。

    13510

    Swift 网络请求数据与解析

    一: Swift 网络数据请求与处理最常用第三方  又有时间出来装天才了,还是在学swift,从中又发现一些问题,这两天上网找博客看问题弄的真的心都累。...博客一篇写出来,好多就直接照抄,就没有实质性的把问题解决了,只是发表的博客数量上 + 1 !!真心没意思。。    ...看看在Swift中是怎样请求数据,解析数据加载图片这些的,也使我们最基本最常见的用法了,先说说这几个三方库:      第一个: Alamofire  (它的原作者就是AFNetworking的原作者...Git地址:https://github.com/Alamofire/Alamofire     第二个: SwiftyJSON  一个解析JSON数据的三方库,使用swift写的,中间帮你省去swift...A和B之间类型的注意点我就不说了,忘记了去看书,,哈哈哈 model.cover_image_url = dataDic["cover_image_url"].

    2.4K80

    ECharts 迎来重大更新,运行时包体积可减少 98%!

    ,开发者可以方便地实现多级数据的动画效果; 为饼图和极坐标系图表增加了更多配置项,可以实现更丰富的样式; 新增阿拉伯语和荷兰语两种语言的翻译 …… 接下来我们会具体介绍这些新功能,新的一年让我们一起学习使用更强大的...有了这个新功能,我们做了几个改变以改善这个问题: package.json 中添加了 "type": "module" package.json 中添加了 "exports": {...}...子目录中添加了一些只包含 "type": "commonjs" 的 package.json 文件 这些改变意味着,像 echarts/core.js 这样的文件现在可以像纯 Node.js、vitest...我们之前的版本中也做了各种努力来改进这一点。开发者可以使用 TreeShaking 按需加载部分代码,以减少加载的代码量。...新增两种语言:阿拉伯语和荷兰语 5.5.0 版本中,我们新增了阿拉伯语(AR)和荷兰语(NL)两种语言的支持。开发者可以通过 echarts.registerLocale 方法注册新的语言包。

    88310

    Swift3.0服务端开发(二) 静态文件添加、路由配置以及表单提交

    今天我们要做的事情就是通过浏览器访问静态文件,然后静态文件中使用form表单往指定的路由上进行提交相应的数据。...经过上述步骤后,我们就可以通过访问localhost:8181来加载我们的index.html文件了,如下所示: ?...2、路由变量 配置路由时,我们的路径中可以添加路由变量来匹配同一类型的url。下方就是Perfect框架中路由变量的使用。URL通过{key}的方式来插入路由变量。...三、表单提交与Json返回 聊完路由的配置,接下来我们要聊一下表单的提交与json数据的返回。...获取到值后你可以查询数据库或者其他一些操作呢。操作完毕后返回相应的json信息。

    1.5K70

    使用Swift模拟用户登录当网获取数据并保存到MySQL中

    前言当当网作为中国最大的综合性网上商城之一,通过爬取当当网数据,我们可以获取商品信息、用户评价、销售数据等宝贵的信息资源。...为什么使用Swift使用Swift进行用户模拟登录和数据获取有以下几个优势:1强大的网络编程支持:Swift提供了丰富的网络编程库,使得模拟用户登录和数据获取变得简单而简单。...以下是使用Swift进行模拟登录的基本步骤:1构建登录请求:使用Swift的URLSession和URLRequest构建登录请求,并设置请求的URL、HTTP方法和参数等。...以下是获取数据的基本步骤:1构建数据请求:使用Swift的URLSession和URLRequest构建数据请求,并设置请求的URL、HTTP方法和参数等。...[String: Any] // 使用SwiftyJSON解析数据 let swiftyJSON = JSON(json) // 提取所需的信息

    22230

    Codable 自定义解析 JSON

    无论是通过网络下载的JSON数据,还是存储本地的模型的某种形式的序列化表示形式,对于几乎任何 Swift 代码库而言,能够可靠地编码和解码不同的数据都是必不可少的。...代码与我们要解码的JSON数据不匹配。...当然,我们可以修改Swift模型的结构,使其与JSON数据的结构完全匹配,但这并不总是可行的。尽管拥有正确的序列化代码很重要,但是拥有适合我们实际代码库的模型结构也同样重要。...相反,让我们创建一个新的专用类型——它将在JSON数据中使用的格式与Swift代码的结构体之间架起一座桥梁。...转换值 解码时,尤其是使用我们无法控制的外部JSON API进行解码时,一个非常常见的问题是,以与Swift的严格类型系统不兼容的方式对类型进行编码。

    2K20

    Swift 项目中涉及到 JSONDecoder,网络请求,泛型协议式编程的一些记录和想法

    JSON 数据的处理 做项目只要是涉及到服务器端接口都没法避免和 JSON 数据打交道。...对于来自网络的 JSON 结构化数据的处理,可以使用 JSONDecoder 这个苹果自己提供的字符串转模型类,这个类是 Swift 4 的 Fundation 模块里提供的,可以Swift 源码目录...JSON 数据然后转换成对应的结构数据。...,将 JSON 解析生成了对应的 Struct,那么下一步就是要把这个结构化的数据生成不同平台的代码,比如首先是 Objective-C 代码,然后是 Swift 代码,再然后会有 Java 代码。...unbox 会处理数字,字符串,布尔值这些基础数据类型,如果有其它层级的结构体也会一层层解下去, _JSONDecoder 的 _JSONDecodingStorage 通过保存最终得到完整的结构体。

    6.7K20

    AVKit框架详细解析(四) —— 基于AVKit 和 AVFoundation框架的视频流App的构建

    这就是应用程序如何用数据填充现有列表的方式。 视频本身来自嵌入应用程序包中的 JSON 文件。 如果您好奇,您可以查看 Video.swift 以了解它们是如何获取的。...不是加载本地视频,而是通过用以下内容替换该行来加载所有视频: private let videos = Video.fetchLocalVideos() + Video.fetchRemoteVideos...转到 Video.swift。 在这里您可以看到 fetchRemoteVideos()只是加载另一个 JSON 文件。...实际上,转到 RemoteVideos.json并找到这一行: "remote_video_url": "https://wolverine.raywenderlich.com/content/ios/...现在,返回 VideoFeedView.swift 并添加以下属性以获取视频剪辑的 URL: private let videoClips = VideoClip.urls makeEmbeddedVideoPlayer

    7K10
    领券