自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 iOS-App Clips轻应用

App Clip 仅限应用于特定场景,即尽可能快地完成一个任务,即用即走。你可以把它看作主 app 的核心功能应用,对于复杂的任务应该在其对应的主 app 完成,因此某些功能被禁止在 App Clip 中使用官网介绍。

2024-06-25 16:01:54 932

原创 iOS17系统适配

横屏的时候秒变智能显示器,常亮显示终于有更有用了。苹果更新了 AirDrop,引入了名为“NameDrop”的功能,用户只需将两台 iPhone 或者将一台 iPhone 和 Apple Watch 放在一起接触下之后,就能通过 NameDrop 功能向对方 iPhone 发送你的电子邮件账号和电话号码,以及你的“海报”。iOS 17 系统中,电话 App 进一步丰富了个性化选项,引入了 Contact Posters,用户可以定制这些海报的显示方式,来电时就会显示不同的海报,让来电观感焕然一新。

2024-06-25 15:46:23 1149

原创 iOS-SSL固定证书

证书锁定(SSL/TLS Pinning)顾名思义,将服务器提供的SSL/TLS证书内置到移动端开发的APP客户端中,当客户端发起请求时,通过比对内置的证书和服务器端证书的内容,以确定这个连接的合法性。

2024-05-09 11:59:57 971

原创 iOS-App Clips轻应用

App Clip 仅限应用于特定场景,即尽可能快地完成一个任务,即用即走。你可以把它看作主 app 的核心功能应用,对于复杂的任务应该在其对应的主 app 完成,因此某些功能被禁止在 App Clip 中使用官网介绍。

2024-05-09 11:38:46 946

原创 《突破自我:2023年度总结与展望》

H5触发url scheme -> Native捕获url scheme -> 原生分析、执行 -> 原生调用h5。回顾过去一年的点滴,我深感人生的宝贵,每一次挑战都是一次成长的机会。在新的一年里,我愿与读者共同努力,迈向新的高度,突破自我。

2024-01-10 09:59:40 1044

原创 Swift单元测试Quick+Nimble

Quick 是一个建立在XCTest 上,为Swift 和Objective-C 设计的测试框架. 对测试使用Swift编写的App非常友好,对Swift使用者来说,Quick是最佳选择它通过DSL 去编写非常类似于RSpec 的测试用例。Nimble 就像是Quick 的搭档,它提供了匹配器作为断言,用于编写匹配模式。使用Quick,编写it方法执行多个test方法,实际执行顺序,按照字母排序执行,可以从控制台打印得出单元测试的方法,保存、删除、修改等会对数据库真正意义上的修改。

2024-01-09 17:34:10 1541

原创 iWatch框架设计

iWatchFeelfitApp.swift:Watch app启动文件入口,类似AppDelegate.swiftContentView.swift: Watch app启动显示的根视图,相当于IOS中的跟控制器,在生命周期入口文件中调用iWatchFeel-Assets.xcassets:设置Watch app的Icon以及图标。

2023-09-04 14:09:56 974

原创 iOS-DSBridge原理浅析

与jSBridge对比没有jsapi提前注入,注入的api接口类DSBridge在消息传递上采用方法名约定的形式,对比jsbridge是提前注册方法作为缓存,交互方式会相对简单便捷但正因为是方法名约定的形式,调用时使用runTime的消息转发,在排查定位问题上难度大,不易定位问题前端传入的方法参数只能是字符串,数据类型有限制。

2023-06-26 14:40:59 442

原创 iOS-组件私有库分模块上传/导入

一个组件私有库可以包含多个模块的子组件,子组件里可能也会需要区分加载不同的资源文件,发布后,通过pod导入时值导入自己所需要的文件,多余文件不应该导入进来。在外部工程使用时,也对应使用:subspecs参数,传入支持的参数,就对应导入指定的文件。使用subspec参数,定义区分导入的模块文件,只需导入需要导入的文件。修改xxx.podspec中的配置参数。

2023-05-22 10:38:56 136

原创 iOS-Telegraph异步响应实现

##背景Telegraph该库只支持管理本地同步请求,为了长远打算,需要研究是否能使response异步回调的方法现象:根据文档说明和示例,以及查看源码实现确认该第三方库确实只支持管理本地同步的请求响应。

2023-05-22 09:51:31 471

原创 Apple账号密码自动填充

为了app登录流程用户体验问题,对于用户登录的账号密码记录并自动填充,为用户提供快速、便捷的登录方式,让用户选择账号即可填充账号密码

2022-06-21 13:58:23 2167

原创 技术分享-swift防御编程

1、背景为了开发人员更有效编写代码,防止出错的概率,我们在代码设计和编写过程中,要尽可能的确保自己的代码不出错,防御性编程使我们能尽早的发现较小问题,而不是等到客户反馈或者收到异常崩溃的时候才发现?作为开发人员,几乎没有人能信誓旦旦说自己的程序百分百没有bug,所以适度的防御会提高开发质量和降低调试bug的时间防御编码的有效方法:- 1.一旦碰到约定的异常,程序上必须做兼容处理,一定不能让程序Crash- 2.一旦碰到预定的异常,就跑出去,如果上层没有处理,则Crash2、防御编程的习惯1.

2022-02-11 18:13:51 1395

原创 Injection III 使用介绍

安装使用这是一款开源工具,可直接在AppStore商店直接搜索下载安装安装好之后,打开工具运行,会在桌面顶部状态栏,初始状态是蓝色,配置好之后是橘红色配置步骤1、点击顶部状态栏,出现以下界面,点击Open Project,会弹出选择文件界面,选择你想打开的项目,选择后,会保存在Open Recent里面,后面可以快捷选择2、使用xcode打开一个项目,在AppDelete文件加入以下代码#if DEBUG Bundle(path: "/Applications/Inject

2022-01-08 17:53:35 2223

原创 SDWebImage详解

简介SDWebImage提供的简洁的获取远程URL图片的API;平时开发中使用最多场景就是列表中的cell中要显示远程图片的需求,在具体的实现中要避免加载图片造成的界面卡顿,列表卡顿等现象的出现;所以需要编码实现如下功能:使用占位图片显示UI界面,异步线程加载图片成功后刷新控件缓存机制,下载过的图片做内存缓存和磁盘缓存app内存吃紧的状态下移除缓存的内容SDWebImage的图片下载分类,只要一行代码就可以实现图片异步下载和缓存功能。功能简介一个添加了web图片加载和缓存管理的UIIma

2021-12-29 16:52:46 531

原创 ios 15适配

早在ios15出来之前,就在预警ios15适配问题,在ios15测试版出来后,升级系统后,采用xcode12.5运行项目,导航栏没问题,但使用xcode13运行项目,跑在ios15系统的设备上,发现导航栏背景色失效,现对于该问题处理做一下记录NavigationBar背景色失效原代码:设置背景色,使用颜色生成图片,设置背景图片[self.navigationController.navigationBar setBackgroundImage:[ImageTool creatImageAccordin

2021-11-11 16:25:13 1965

原创 iOS基于系统原生的语音识别助手

语音识别系统是基于系统的speech.framework来实现的1.首先,获取权限在Info.plist文件中,加入这两项权限// Privacy - Speech Recognition Usage Description 录音权限// Privacy - Microphone Usage Description 话筒权限申请权限 // case notDetermined = 0 // case denied = 1 // case

2021-08-12 10:59:04 445 1

原创 ios App启动性能优化

一、App启动性能相关前置知识1.App启动过程解析Info.plist文件1. 加载相关信息,例如闪屏2. 沙箱建立、权限检查Machine-O加载1. 如果是胖二进制文件,寻找合适当前CPU类别部分2. 加载所有依赖的Mach-O文件(递归调用)3. 定位内部、外部指针引用,例如字符串、函数等4. 执行声明为__attribute__((constructor))的C函数5. 加载类扩展(Category)中的方法6. C++静态对象加载、调用Objc的+load函数程序执行

2021-08-04 16:34:09 193

原创 ios-底层原理02内存对齐

在实验过程中发现,结构体中成员的顺序不一样时,结构体所占内存大小不同,进行如下探究:struct personOne { int a; //4个字节 [0 3] bool b; //1个字节 [4] double c; //8个字节 取8的倍数存 [8 15] char d; //1个字节 [16] //最大字节整数倍 进行补齐 24个字节};struct personTwo { int a;

2021-07-22 16:28:01 109

原创 ios-底层原理01对象创建流程

如何探索底层源码从苹果官网获取oc底层源码,加入到工程中,就可以查看对应的源码alloc流程1.底层源码加入成功后,全局搜索alloc,就可以查看alloc源码2.进入_objc_rootAlloc方法3.进入callAlloc方法,这里有一些判断,主要是判断是否有可重用的方法4. 进入到_class_createInstanceFromZone方法这里主要做了三件事:计算类的大小(使用了属性字节的对齐方法,增加存取的效率)开辟内存空间关联该类init方法如图所示,直接返回

2021-07-22 15:10:50 93

原创 ios运行js文件,执行方法获取数据

一、解决问题目前我们的app大多都是与前端h5页面混合开发,有些数据类似但却要app端和h5端各维护一套代码,不便于管理,代码逻辑也可能存在差异二、新技术概述JavaScriptCore是webkit的一个重要组成部分,主要是对JS进行解析和提供执行环境iOS7后苹果在iPhone平台推出,极大的方便了我们对js的操作。我们可以脱离webview直接运行我们的js。iOS7以前我们对JS的操作只有webview里面一个函数 stringByEvaluatingJavaScriptFromString

2021-03-29 11:08:21 3465

原创 RTL适配-阿拉伯语

背景公司项目需支持多种语言,其中包含阿拉伯语,而阿拉伯语适配是一个比较麻烦的事情,不止在于它的文案的适配,更多的是在于其语言习惯的变化。可以使用手机切换为阿拉伯语,看到手机界面整个都反向显示了,由从左到右的布局习惯变成了从右到左的布局习惯针对ios9之后的RTL(RightToLeft简称RTL)适配,苹果有一个官方文档教你怎么适配定制RTL当系统语言切换成RTL语言(阿拉伯语)后,如果App支持这个语言,系统会自动帮助App设置成RTL布局。但很多时候,我们希望自己配置当前是否是RTL,比如App

2020-12-02 11:11:04 2129

原创 ios适配暗黑模式-图片、颜色

一、适配Dark mode:颜色适配、图片适配其实适配Dark模式,开发者主要从颜色和图片两个方面进行适配,我们不需要关心切换模式时改如何操作,这些都是系统帮我们实现,我们只需要做好适应两套模式的资源就好了颜色适配:系统自带ios13之前UIColor只能表示一种颜色,而从ios13开始后UIColor可以表示一个动态的颜色,在Light Mode和Dark Mode可以分别设置不同的颜色系统提供的一些动态颜色:@property (class, nonatomic, readonly) U

2020-11-10 14:52:35 1874

原创 ios 问题记(持续更新...)

Archives-upload::WARNING ITMS-90076:“Protentoal Loss of Keychain Access, The Previous version of software has an application-identifier value of[‘XXX.com.qingniu.food’] and the new version of software being submitted has an application-identifier of [‘YYY.

2020-07-31 10:44:20 685

原创 Xcode项目快捷键

Xcode MenuCommand+1:工程导航器,快速浏览代码、图片以及用户界面文件。Command+0:显示/隐藏导航器面板;Command+Option+0:显示/隐藏实用工具面板(右边工具栏),实用工具面板主要用于编辑用户界面文件时;在辅助编辑器中打开文件:在项目导航器中选中文件执行Option+左键点击操作。Command+Shift+F:搜索导航器(Find Navigator,也就是搜索),Command+F:当前页搜索;运行app: Command + R;清除工程: Co

2020-07-08 14:10:50 554

原创 ios14 App Clips特性

简介今年上半年的苹果开发者大会,苹果宣布了App Clips,这是一个应用的小片段,让你无需下载完整的应用就能与之互动,类似于微信的小程序,“用完即走”的理念。App Clips 是iOS 14的一个主要部分,它的主要表现是通过App Clips用户可以从类似“卡片”界面查看应用内的信息,以帮助决定是否购买,而不是要求用户下载一个完整的应用。包内容限制App Clips被设计的很小,显示范围仅占屏幕一半,容量要求不超过10MB,并可使用Apply Pay和Sign-In With Apple等最新的

2020-07-07 14:51:10 745

原创 iOS-集成Firebase发送推送通知到app

Firebase项目创建必须先创建一个Firebase的项目,并将其关联到你的iOS应用,然后才能将Firebase集成到你的iOS应用,Firebase中文文档一、创建Firebase项目在Firebase控制台 中,点击 添加项目 ,然后选择输入项目名称如果你创建了一个新项目,可以修改项目IDfirebase会自动为你的firebase项目分配唯一的ID,项目预配好资源后,...

2020-02-28 15:15:14 4038 3

原创 OCLint的规则

上一篇文章介绍了怎么配置在项目中配置oclint,这一篇来介绍一下oclint的规则使用一、.OCLint文件介绍OCLint可以加载配置文件(/etc/oclint,~/.oclint和.oclint),获取需要限制的参数共有三个级别的配置文件系统配置文件系统配置文件的路径保存在$(/path/to/bin/oclint)/../etc/oclint,最常见的路径是/bin/oc...

2020-01-16 16:02:45 577 1

原创 iOS使用OCLint做静态代码分析

iOS使用OCLint做静态代码分析为什么要做代码检查?检查代码是否误写或者错写,导致一些问题的产生,不能及时发现减少工程的警告,防止后续系统版本更新的不兼容问题规范代码风格,变量和方法的命名、空格和空白行,提高代码的可读性减少代码冗余初识OCLintOCLint是一种静态代码分析工具,用于通过检查C,C ++和Objective-C代码并查找潜在问题来提高质量并减少缺陷。...

2020-01-16 13:37:09 567 1

原创 iOS 使用LaunchScreen.storyboard设置启动图

iOS 使用LaunchScreen.storyboard设置启动图创建一个Launch Screen.storyboard的文件。在view视图里,创建一个ImageView,并设置约束全屏勾选Ues as a Launch Screen。在Aessts.xcassets,添加一个图片,图片尺寸尽量采用大尺寸,不然在大屏手机上虽然不会被拉伸,但是会显示模糊。在LaunchScre...

2019-10-08 17:36:03 5085 1

原创 iOS 通用链接(Universal Link)配置

iOS 通用链接(Universal Link)配置什么是通用链接?通用链接是iOS9推出的一项新功能,如果你的应用(app)支持通用链接(Universal Link)之后,iOS用户能够在点击网页的链接的时候无缝的重定向到已经安装的app,不需要额外的任何操作。如果没有安装对应的app,那么点击链接会使用Safari打开网页。在iOS9以前,对于各种浏览器,Safari中唤醒app的需求,...

2019-09-30 14:49:25 6963 4

原创 SwiftDate日期库使用详解

SwiftDate日期库使用详解一、基本介绍1、什么是SwiftDate?(1) SwiftDate是一个使用Swift语言编写的Date的封装库,使用它可以很方便的对日期进行处理,方便我们工程对日期显示的格式需求。(2) SwiftDate功能强大,本身swift相对Objective-C,语法上就要简单很多,操作起来更简单易懂,无论是简单的日期操作,还是复杂的业务逻辑都能满足。如如:...

2019-07-01 17:18:33 8301

原创 使用Git命令把本地已有项目上传到Github托管

使用Git命令把本地已有项目上传到Github托管首先在Github上新建一个repository,我命名为HexagonDemo1,其他的根据自己的需求填写即可:创建完成后,可以看到是这个样子的:注意到右下角的项目URL:复制一下,等下回用到:然后找到在本地的项目,名称为HexagonDemo,终端进入到该项目路径:执行命令:git init (初始化git)继续执行命...

2019-06-12 14:42:45 443

原创 iOS不规则Button响应点击事件

iOS不规则Button响应点击事件需求利用图片,实现点击区域是否响应点击事件,有图片内容的则响应,无内容的不响应。参考:掘金:iOS不规则button点击一解决的问题:描述:下载了JTShapedButton源码,查看后发现当图片大小与按钮实际大小不一致(为了适配,在不同机型上按钮的实际大小可能会等比缩放,导致实际显示的大小与图片实际大小不一致),点击图片范围事件错误。不该响应的地方也...

2019-04-23 16:17:32 488

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除