一文详解NSSecureCoding真的安全吗
目录NSSecureCodingNSCoding的用法NSSecureCoding的用法NSSecureCoding的致命缺点结语NSSecureCoding
NSSecureCoding 可能很多人都没用过,但是 NSCoding 大家应该都不陌生;你可以简单的理解为 NSSecureCoding 是 NSCoding 的安全版本。
为什么 NSSecureCoding 比 NSCoding 更安全呢?如果你上网搜索这2者的区别,大部分的 ...
objc方法声明和实现由于参数类型不一致所引发的崩溃
目录正文分析补充总结正文
你有注意过objc方法声明处和方法实现处参数类型不一致的情况吗,就像这样:
@interface Person : NSObject
- (void)frothTimeNSInteger)regionTime value1BOOL)value;
@end
@implementation Person
- (void)frothTimeNSInteger)regionTime value1NSString *)value;
@end
这2个方法除了第2个参数 ...
uniapp与ios原生混合开发教程 - 开篇
说明
有读者反馈: 学习uniapp ios 插件开发不知道从哪些文章看起,没有一个清晰的学习路线
本文就做一个解答。 首先本系列的文章是作者精心排过序的,如果想要完整的学习uniapp ios原生插件开发技术的话,建议是按文章顺序浏览。 当然您如果有相关的开发经验,且只对某一技术实现感兴趣的话,也可以有选择性的阅读。 同 ...
NotificationCenter类实现原理
目录正文1、首先定义一个NotificationCenter类定义2、然后定义一个观察者对象3、在NotificationCenter中添加注册观察者的方法4、在 NotificationCenter 中添加发送通知的方法5、在NotificationCenter中添加移除通知者的方法NSNotificationCenter 实现NSNotification 实现NSNotificationQueue 的实现正文
NotificationCente ...
iOS GCD之dispatch_group_enter和dispatch_group_leave使用
目录正文如何使用crash 场景分析源码实现正文
在实际开发中,经常需要在几个任务全部执行完成之后,在执行后续操作,在 iOS 中,我们可以通过 NSOperation 等达到这一目的。在本篇文章中,我们会介绍如何通过 dispatch_group_enter 和 dispatch_group_leave 来实现这一功能,以及使用过程中遇到的坑。
如何使用
通过一个例 ...
Objective-C的UIStackView常用属性函数学习笔记
目录UIStackView常用属性常用函数UIStackView
UIStackView能够利用自动布局的功能,创建能够动态适应设备方向、屏幕大小和可用空间中任何更改的用户界面。
UIStackView管理其arrangedSubviews属性中所有视图的布局。这些视图是根据它们在arrangedSubviews数组中的顺序沿堆栈视图的轴线排列的。具体布局因UIStackView的轴线 ...
Objective-C计时器NSTimer学习笔记
目录NSTimer - 计时器NSTimer创建计时器函数NSTimer触发与销毁计时器函数常用属性NSRunLoop - 运行循环NSRunLoop常用属性NSRunLoop常用函数NSTimer - 计时器
NSTimer派生自NSObject,是一种计时器,在经过一定的时间间隔后触发,向目标对象发送指定的消息。
计时器(NSTimer)与运行循环(RunLoop)一起工作。运行循环维护对其 ...
深入详解Objective-C中的@Synchronized关键字
目录正文@Synchronized的底层实现badcase分析正文
在多线程编程中,线程之间共享资源时容易出现数据竞争的问题,导致程序出现不可预期的结果。为了避免这种情况,我们需要采用一些同步机制来保证线程之间的安全协作。 @synchronized指令是Objective-C中一种常用的同步机制。
@synchronized指令是Objective-C中一种非常简单 ...
iOS定时器的选择CADisplayLink NSTimer和GCD使用
目录iOS定时器选择CADisplayLinkNSTimerGCD定时器总结iOS定时器选择
iOS应用中经常需要使用定时器来处理某些任务,例如执行动画、更新UI等。iOS提供了多种定时器类型,包括CADisplayLink、NSTimer和GCD定时器。不同的定时器类型适用于不同的场景和需求,因此在选择定时器类型时需要根据具体的情况进行选择。
CADisplayLink
...
iOS 项目嵌入Flutter 运行(最新推荐)
目录一 创建Flutter 模块二 嵌入到iOS 项目三 iOS 项目中调用一 创建Flutter 模块
命令行
flutter create --template module my_flutter
创建完成后,该模块和普通的Flutter项目一直,可以通过Android Studio或VSCode打开、开发、运行;
和之前项目不同的iOS和A ...
Swift中的高阶函数功能作用示例详解
目录高阶函数的作用1. 简化代码2. 提高可读性3. 支持函数式编程4. 提高代码的可重用性常见的高阶函数1. map()2. filter()3. reduce()4. sorted()5. forEach()6. compactMap()7. flatMap()8. zip()9. first()10. contains()高阶函数的作用
Swift中的高阶函数是指那些参数或返回值是函数的函数。它们的存在使得我们可以用非 ...
iOS架构从 MVC、MVP 到 MVVM
目录概述1.传统的MVC设计模式用户的交互逻辑iOS开发实际使用的MVC架构2.MVP设计模式用户的交互逻辑MVP代码示例3.MVVM+RAC设计模式MVVM代码示例总结概述
做了这么多年的客户端研发一直在使用苹果爸爸推荐的MVC架构模式。MVC从应用层面进行分层开发,极大优化了我们的代码结构,简单易上手,很容易被程序员所接受。程序员刚接 ...
ios设计模式--委托模式
目录(一)协议(二)id类型(三)适配器模式(四)实例(五)委托模式的深入理解Cocoa Touch框架下使用大量使用委托(delegation),根据苹果公司的文档,delegate是Cocoa Touch框架所采用的委托模式的一种形式。
理解委托,所需要的准备
(一)协议
Objective-C的协议,类似于C++的抽象类,JAVA的接口。其具体定义如下
@prot ...
解密ios响应链的工作原理
目录事件响应链的工作原理响应者对象的特点自定义事件处理事件传递和事件响应事件拦截事件传递到父视图自定义事件响应链总结事件响应链是 iOS 开发中的一个核心概念,它描述了系统将用户交互事件传递给最适合处理该事件的对象的过程。理解事件响应链的机制对于开发高质量的应用程序至关重要。本文将深入探讨事件响应链的工 ...
iOS上架App Store详解(图文)
iOS上架App Store详解(图文)
上架基本需求资料
1、苹果开发者账号(如还没账号先申请- 苹果开发者账号申请教程)
2、开发好的APP
通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestFlight测试然后提交审核的完整流程!
上架App Store审核分7步进行。
1、安装iOS上架辅助 ...
ios开发者账号到期了如何续费(详细步骤)
添加图片注释,不超过 140 字(可选)
iOS开发者账号在到期的前一个月即可续费,如果到期没有续费APP将会下架,在App Store无法搜索
1、登录苹果开发者中心
编辑
添加图片注释,不超过 140 字(可选)
有这个红色提示说明该续费了
编辑切换为居中
...
swift 错误处理do catch try try!使用详解
在swift中 如果我们要定义一个表示错误类型非常简单,只要遵循Error协议就可以了,我们通常用枚举或者结构体来表示错误类型,枚举可能用的多些,因为他能更直观的表达当前错误类型的每种错误细节。
//
// AboutError.swift
// learn_swiftUi
//
// Created by liuan on 2020/9/4.
// Copyright © 2020 liuan. All righ ...
Swift Package 技巧及混编兼容问题详解
目录创建 Package使用 Package维护 Package版本控制本地调试修改Package 之间的依赖混编问题target 拆分引用以及和 cocoapods 的兼容问题创建 Package
mkdir somePath
cd somePath
swift package init (--type library/executable/empty/system module)
其中,type 的四种类型分别对应:
library: 库(默认)executable: ...
Swift重构自定义空等运算符 “??=” 实例
目录一、思路来源二、示例三、源码四、总结一、思路来源
最近在做 Flutter 开发时发现一个之前没注意到的空等运算符 “??=”,代表左边为空时,才会把右边的值赋给左边,然后返回左边的变量值;常用于避免多次赋值的情况;发现非常实用,于是给 swift 也自定义一个使用,最终如下;
二、示例
b1 获取 a1 的值 ...
Swift 重构重载运算符示例解析
目录一、思路来源二、基础类型 String 为例重载乘法运算符源码实现:三、对象类型 UIEdgeInsets 为例重载加法运算符将源码实现:四、总结一、思路来源
研究自定义运算符的时候,又重新看了一下重载运算符,觉得挺有意思的,随手封装了几个。
二、基础类型 String 为例
重载乘法运算符
将一段字符串重复 n 次拼接在一起;
l ...