Swift 常用的库:网络请求、JSON 解析和图像加载

swift 专栏收录该内容
¥59.90 ¥99.00
66篇文章

在 Swift 开发中,我们经常需要进行网络请求、JSON 解析和图像加载等操作。为了简化这些常见任务,Swift 社区开发了许多实用的库。本文将介绍一些常用的库,并提供相应的源代码示例。

  1. Alamofire(网络请求库)
    Alamofire 是一个基于 Swift 的 HTTP 网络请求库,它提供了简洁的 API 和丰富的功能。下面是一个使用 Alamofire 发起 GET 请求的示例:
import Alamofire

AF.request("https://api.example.com/data")
    .validate(<
App开发语言选型:从场景约束出发的工程决策指南 App开发语言不是编程语法的选择,而是面向真实业务场景的技术适配问题。其核心在于理解平台兼容性、性能边界、生态支持与团队能力四大刚性约束。例如运动App依赖实时传感器与低功耗,需Kotlin/Swift结合C++底层优化;毒辣剪辑App强调GPU加速与视频编解码,必须依托原生框架调用Metal/RenderScript。语言本质是解决特定问题的工具链一环,而非独立技术标的——真正决定成败的是对Android AIDL通信机制、iOS HealthKit集成规范等关键能力的精准匹配。本文聚焦工程落地视角,提供 阅读详情

相关推荐

Qwen3-VL实战:本地部署、LoRA微调与量化推理完整指南

多模态大模型正在成为AI应用开发的核心能力,视觉语言模型(VLM)将图像理解与自然语言生成统一在一条技术链路中。对于工程师而言,理解VLM的图像token编码与文本token拼接原理是本地部署的基础。Qwen3-VL作为开源社区热门模型,其工程化落地涉及环境配置、模型加载、推理优化与业务对接等多个环节。LoRA微调通过低秩矩阵有效适配特定数据集,在保持模型通用能力的同时提升专项任务效果;量化推理则解决了显存受限时的部署难题,通过bitsandbytes等工具实现4bit加载,平衡资源与性能。上述技术组合在文

weixin_33871366的博客 369

uniapp集成PDA激光扫码:串口协议解析与uts插件实战

PDA激光扫码本质是硬件级串口数据通信,而非手机端的图像识别技术。其核心原理在于通过USB CDC、蓝牙SPP或厂商SDK,将扫描模块解码后的ASCII帧(含STX/ETX/CRC)稳定传输至应用层。技术价值体现在低延迟、高可靠性及离线可用性,广泛应用于仓储物流、电力巡检、冷链温控等工业场景。实际开发需突破uniapp跨平台限制,借助uts插件实现Android串口读写与iOS蓝牙降级兼容,并完成帧头帧尾提取、粘包处理与CRC校验等关键解析逻辑。本文聚焦东集U700等主流PDA设备,提供可直接运行的unia

weixin_34060299的博客 362

深入解析Playwright事件监听:从原理到实战,打造健壮自动化脚本

事件监听是现代Web自动化测试与数据抓取中的核心概念,它基于事件驱动编程范式,将脚本从线性的命令式执行转变为响应式的智能感知。其技术价值在于实现操作逻辑与等待逻辑的解耦,显著提升脚本在动态页面中的鲁棒性和执行效率。在自动化测试、网页爬虫、性能监控等应用场景中,通过监听页面生命周期、网络请求、控制台日志等关键事件,开发者可以精准捕获页面状态变化,实现更智能的交互。本文聚焦Playwright框架,详细解析其三层事件体系(浏览器上下文、页面、元素),对比page.on与page.waitForEvent两种监听

weixin_30732487的博客 399

OpenStack Glance生产级手动部署与高可用配置指南

Glance作为OpenStack核心镜像服务,其元数据管理与二进制存储能力直接决定云平台的稳定性与扩展性。其底层依赖数据库强一致性、多后端存储适配及Keystone深度鉴权等关键技术原理;技术价值体现在支撑千级租户、TB级镜像、跨AZ容灾与RBAC细粒度管控;典型应用场景包括金融私有云、政务信创云及混合云镜像分发中心。本文聚焦Glance手动部署这一生产刚需,深入解析MySQL集群选型、Ceph RBD存储集成、policy.json权限策略定制等关键实践,覆盖从源码编译、systemd守护到故障速查的全

weixin_33827731的博客 418

深入解析JS-Bridge:基于WKWebView的OC与JavaScript互调实战

在移动应用开发中,跨语言调用是连接Web动态能力与原生稳定性的核心技术。其本质是通过进程间通信(IPC)机制,在JavaScript运行环境与原生代码(如Objective-C)之间建立安全、高效的通信桥梁。这项技术的核心价值在于弥合了Web应用的灵活性与原生设备能力(如摄像头、文件系统)之间的鸿沟,是实现Hybrid混合开发模式的关键。常见的实现方案包括URL Scheme拦截、JavaScriptCore框架以及WKWebView的MessageHandler。其中,WKWebView的MessageH

weixin_34297704的博客 450

RPA与ChatGPT融合:构建智能求职自动化系统全解析

机器人流程自动化(RPA)是一种模拟人类在图形用户界面执行重复性任务的软件技术,其核心原理是通过录制或脚本控制UI元素,实现业务流程的自动化执行。在数字化转型浪潮中,RPA的价值在于提升效率、降低人力成本,广泛应用于财务、人力资源、客服等数据搬运与表单处理场景。大语言模型(如ChatGPT)则基于深度学习技术,通过理解和生成自然语言,为自动化流程注入认知与决策能力。当RPA的“执行力”与ChatGPT的“智能分析”相结合,便形成了更高级的智能自动化解决方案——智能体。这种融合技术不仅能处理结构化操作,还能解

weixin_34342905的博客 416

2026手机写代码实战指南:Termux、Acode Pro等六大工具深度评测

移动开发环境正从‘辅助终端’升级为开发生命周期关键节点。随着Android 15统一ABI、鸿蒙Next全面转向ArkTS、iOS 18开放Swift Playgrounds底层权限,手机已具备运行Python、Node.js、Rust等主流语言的能力,核心挑战转向环境可移植性、输入效率保底与生态兼容性。本文聚焦‘手机写代码’这一高频工程实践,解析文件系统映射深度、调试协议穿透能力、语音+外设协同输入等底层能力差异,覆盖数学建模、嵌入式调试、教育编程、iOS原生开发等典型场景,并实测Termux、Acode

weixin_34166847的博客 429

FolderForge:用SwiftUI打造原生质感的macOS文件夹图标自定义工具

在macOS开发与系统定制领域,图标设计与文件管理是提升用户体验和工作效率的重要环节。通过SwiftUI等现代UI框架,开发者可以创建具有原生视觉质感的界面组件,实现与操作系统无缝融合的视觉效果。FolderForge作为一个开源工具,精准解决了文件夹图标自定义的痛点,它利用SwiftUI的实时渲染能力,生成符合Apple设计规范的图标文件。该工具不仅降低了创建高质量图标的技术门槛,还通过简化操作流程,让用户能够快速为项目文件夹、文档分类等场景创建独特的视觉标识,从而提升文件检索效率和工作流组织能力。

congsikuai0611的博客 371

Easydict深度解析:macOS系统级文字协作者的实现原理

文字交互是开发者日常高频操作,其本质是‘输入→识别→理解→输出’的认知闭环。在macOS生态中,高效文字处理依赖原生API能力(如Accessibility、Core ML OCR、Speech Synthesis)与现代AI服务(OpenAI、DeepL)的低延迟协同。技术价值在于突破传统翻译工具的界面束缚,将查词、OCR、多源翻译、语音反馈压缩至毫秒级响应,实现‘无感介入’的系统级体验。典型应用场景包括技术文档阅读、英文写作辅助、PDF代码提取及跨语言会议协作。本文聚焦Easydict如何融合macOS

weixin_34068198的博客 588

SwiftUI iOS 精品项目之RSS阅读器基于Json和CoreData (项目含源码)

实战需求 SwiftUI iOS 精品项目之RSS阅读器基于Json和CoreData (项目含源码) RSS阅读器是适用于iOS的最小,最简单的RSS阅读器,具有使用SwiftUI和CoreData的功能和简化的设计 本文价值与收获 看完本文后,您将能够作出下面的界面 核心组件库 AFNetworking AFNetworking是一个适用于iOS,macOS,watchOS和tvOS的令人愉悦的网络库。它基[Foundation URL Loading System构建,扩展了Cocoa中内

iCloudEnd的博客 1150

R语言的下载、安装及环境配置(Rstudio&VSCode)

R for Windows是一个免费的用于统计计算和统计制图的优秀工具,是R语言开发工具。它拥有数据存储和处理系统、数组运算工具(其向量、矩阵运算方面功能尤其强大)、完整连贯的统计分析工具、优秀的统计制图等功能。提供的图形界面,可以在其中访问控制台、创建脚本或安装其他软件包。

zegeai的博客 2万+

电池管理系统(BMS)系列(四)—数据采集之温度

属于BMS系列文章,介绍了电池包温度采集相关方式

zxx52113140的博客 5456

从零构建:基于Docker与FRR的OSPF虚拟网络实验室

本文详细介绍了如何利用Docker与FRR构建OSPF虚拟网络实验室,从环境设计到高级网络拓扑配置,再到实验验证与排错。通过容器化技术实现高效资源利用和快速部署,特别适合网络协议教学、企业网络架构验证等场景。

plum99的博客 221

西门子S7-1200的PID应用(恒温热水器)

物料清单:1200PLC一台,模拟量输入模块SM1231(PLC自带的输入通道不支持4-20mA电流输入)一个,PT100一个,温度变送器,热得快,固态继电器。 第一步,硬件接线; 第二步,新建1200工程,添加PLC和模拟量输入模块,修改模块的模拟量输入类型为4-20mA,模拟量模块的IO地址为96-103(8个字); 第三步,新建循环组织块OB30,循环时间选择默认点1...

weixin_30835649的博客 6549

别再自己造轮子了!用MONAI Model Zoo里的预训练模型,5分钟搞定医学影像AI项目

本文介绍了如何利用MONAI Model Zoo中的预训练模型快速搭建医学影像AI项目,大幅节省开发时间和计算资源。通过实战案例展示了UNet、DenseNet121等核心模型的应用技巧,帮助临床医生和研究者5分钟内启动高质量医学影像分析,特别适合小样本场景下的病灶分割和分类任务。

weixin_33704234的博客 238

1、信息与物理世界:“It from Bit”还是“Bit from It”?

这篇博文探讨了物理学与信息理论之间的深刻联系,从惠勒提出的“It from Bit”概念出发,讨论了信息是否是物质世界的基础,或者物质是否是信息的来源。文章回顾了2013年举办的征文竞赛以及众多学者对这一问题的不同观点,涵盖了量子理论、热力学、计算机科学、黑洞物理以及时空本质等多个领域。同时,文章还分析了信息理论在哲学层面的含义,并展望了其在未来理论、实验和应用研究中的潜力与方向。

water的专栏 289

工业缺陷标注要人命?我从零搭了一套自动标注系统,标注效率直接提升10倍

你是不是也深陷工业缺陷标注的无尽内耗?这不是个例,工业视觉项目落地,80%的时间和成本,都耗在了数据标注环节。普通的图像标注(猫狗分类、人脸识别),标注门槛低、规则简单、一致性要求宽松;而工业缺陷标注,是CV领域公认的地狱级难度:缺陷尺寸小到几像素、种类繁杂且非标、行业专业性极强、标注精度要求到像素级、正负样本极度不均衡,人工标注不仅效率低、成本高,更直接决定了模型的最终上限。我在工业视觉行业摸爬滚打了6年,踩遍了人工标注的所有坑,最终从零搭建了一套工业缺陷专用的闭环自动标注系统,把原来一张图30分钟的标注

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 202

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 自定义悬浮式Tabbar实现Navigation的自动隐藏与显示
下一篇: 使用SwiftUI模仿NavigationLink小箭头
普通网友
博客等级 码龄3年 22粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值