iOS 内存泄漏排查方法及原因分析
目录一、排查方法1.1 静态内存泄漏分析方法:1.2 动态内存泄漏分析方法:二、内存泄漏的原因分析2.1 ViewController中存在NSTimer2.2 ViewController中的代理delegate2.3 ViewController中Block本文将从以下两个层面解决iOS内存泄漏问题:
内存泄漏排查方法(工具)内存泄漏原因分析(解决方案)
在正式开始前,我们先区分 ...
iOS打包IPA教程
xcode打包导出ipa
众所周知,在开发苹果应用时需要使用签名(证书)才能进行打包安装苹果
IPA,作为刚接触ios开发的同学,只是学习ios app开发内测,并没有上架appstore需求,对于苹果开发者账号认证需要支付688,真的是极大的浪费,使用appuploader,只需要注册苹果普通的账
号,不需要688认证,就可以打包自己开发的ios应 ...
Swift Sequence Collection使用示例学习
目录一:Sequence1.1 迭代器 Iterator1.2 IteratorProtocol协议1.3 Sequence协议1.4 通过Sequence协议自定义有限的集合二:Collection2.1 环形数组2.2 MutableCollection2.3 RangeReplaceableCollection2.4 BidirectionalCollection2.5 RandomAccessCollection一:Sequence
对于 Sequence 协议来说,表达的是既可以是一个有 ...
Swift之运算符重载示例详解
目录引言重载双目运算符单目运算符复合赋值运算符等价运算符 ==自定义运算符自定义后置运算符自定义中置运算符引言
在C++中, 运算符是可以重载的, Swift也是支持的
注:=和三目运算符a ? b : c不可重载
重载双目运算符
class Vector {
var x: Double = 0.0
var y: Double = 0.0
var z: Double = 0.0
init(x ...
Swift map和filter函数原型基础示例
目录map函数原型filter函数原型map函数原型
/// Returns an array containing the results of mapping the given closure
/// over the sequence's elements.
///
/// In this example, `map` is used first to convert the names in the array
/// to lowercase strings and then to count their characters.
///
/// ...
Swift reduce函数使用示例详解
目录reduce参数示例reduce(intoreduce
Swift中数组的reduce方法用于做序列元素的累加,如数组元素的累加, 函数原型:
@inlinable
public func reduce<Result>(
_ initialResult: Result,
_ nextPartialResult: (Result, Element) throws -> Result) rethrows -> Result
参数
initialResult: 初始值, The value t ...
iOS Swift Lazy var View失效问题解决
目录lazy var使用失效原因分析lazy var使用失效
一般来说,在UIViewController里的UIView使用lazy var,可以确保在只第一次使用时创建。
但是如果在viewDidLoad()前访问这个View,那么这个View就会创建两次,说明Lazy var机制失效了。网上搜了一下,都是说Lazy var在多线程下会失效。然而我打印一下日志,两次创建都是在主 ...
iOS Swift 值类型与引用类型使用区别基础详解
目录引言值传递引用传递引言
值类型在传递和赋值时将进行复制,而引用类型只会使用引用对象。
Swift中定义的很多类型都是值类型,如struct、enum以及所有的内建类型(Int、Bool、String、Array、Dictionary)都是值类型。class为引用类型。
以最常用的数组为例
值传递
A,B两个类各有一个Array,把B的arr赋值为A的arr,然后给B ...
iOS各种ViewController控制器使用示例完整介绍
目录正文1 UIViewController2 UINavigationController3 UITabBarController4 UIPageViewController正文
iOS 界面开发最重要的是ViewController和View,ViewController是View的控制器,也就是一般的页面,用来管理页面的生命周期(它相当于安卓里的Activity,两者很像,又有一些差异)。
ViewController的特点是它有好几种。 ...
IOS开发-UIImageView基本用法
UIImageView是iOS中用于显示图像(图片、gif、svg等)的视图。
它的主要功能有:
1. 显示图片UIImageView可以通过image属性显示一张UIImage类型的图片。可以是本地图片、从网络下载的图片等。
2. 设置填充模式可以通过contentMode属性设置图片在UIImageView内的显示和填充模式。内容模式有:- scaleToFill:拉伸填充整个imageVie ...
IOS开发--UILabel的基本使用
UILabel是iOS中用于显示静态文本的控件。
它的主要功能是:1. 显示一行或多行文本
UILabel可以用来显示单行或多行文本内容。通过设置numberOfLines属性可以控制文本显示的行数。2. 字体、颜色和对齐方式定制可以通过font、textColor和textAlignment属性来设置UILabel的字体、文本颜色和文本对齐方式。3. 富文本显示UILabel支 ...
ios开发--cocoapod安装、更新和使用 , 安装中出现的错误及解决方案 M1或者M2安装cocoapods
cocoapod是ios开发时常用的包管理工具
1.M1或者是M2系统安装cocoapods先操作一下两个设置
1、打开访达->应用->实用工具->终端->右键点击终端->显示简介->勾选使用 Rosetta 打开,关闭终端,重新打开。2、打开访达->应用->Xcode->右键点击Xcode->显示简介->勾选使用 Rosetta 打开,关闭Xcode,重新打开。
mac系统已经默认安 ...
iOS超出父控件范围无法点击问题解决
目录场景实现思路完整代码botView代码场景
橙色view添加在蓝色view上,满足点击超出蓝色view部分可以响应事件
实现思路
重写底部蓝色view的hitTest方法,从最上层依次遍历子控件,判断触摸点是否在子控件上,在的话就返回子控件的hitTest方法,不在就返回self
完整代码
#import "ViewController.h"
#import "BotView.h"
@i ...
如何在Swift 中使用 async let 并发运行后台任务
目录前言长期运行的任务阻塞了UI使用 async/await 在后台执行任务在后台执行多个任务使用 "async let " 下载多个文件结论前言
Async/await 语法是在 Swift 5.5 引入的,在 WWDC 2021中的 Meet async/await in Swift 对齐进行了介绍。它是编写异步代码的一种更可读的方式,比调度队列和回调函数更容易理解。Async/await 语法 ...
iOS微信分享配置universal links步骤解析
目录一、配置好应用的Universal Links1、开通Associated Domains2、创建文件名"必须"为apple-app-site-association的文件4、在工程配置以 applinks: 开头5、微信开放平台配置universal links一、配置好应用的Universal Links
1、开通Associated Domains
登录苹果开发者账号进入对应的appid,开通Associated Domains
并在这 ...
iOS小组件开发之WidgetKit功能讲解
目录WidgetKitWidgetKit 主要功能自定义主题自定义组件响应式编程定时器地理位置信息事件监听器可滚动视图WidgetKit
WidgetKit 是 Swift 语言中一款用于构建桌面应用程序的库。它提供了一种简单、快速的方式来构建具有高度自定义能力的桌面应用程序。WidgetKit 的目标是使构建桌面应用程序变得更加容易,同时提供丰富 ...
iOS开发Firebase中的常用库使用及功能详解
目录iOS Firebase关于Firebase CoreFirebase Analytics功能Firebase Analytics基本功能Firebase Analytics高级功能Firebase Authentication功能Cloud Firestore功能Firebase Realtime Database功能配置Firebase项目Cloud Storage for Firebase功能Firebase Performance功能Firebase Messaging功能Firebase Crashlytics功能R ...
iOS开发APP跳转到设置或系统页面详解
目录iOS10以前在iOS10以后的系统中iOS10以前
打开设置应用: UIApplication.openSettingsURLString打开通用设置: App-Prefs:root=General打开关于本机: App-Prefs:root=General&path=About打开软件更新: App-Prefs:root=General&path=SOFTWARE_UPDATE_LINK打开网络设置: App-Prefs:root=General&path=Network打开Wi-Fi设置: ...
Swift高阶函数contains allSatisfy reversed lexicographicallyPrecedes用法示例
目录一、contains二、allSatisfy三、reversed四、lexicographicallyPrecedes一、contains
返回一个布尔值,指示序列的每个元素是否满足给定的条件。如果有一个满足即返回。
let expenses = [21.37, 55.21, 9.32, 10.18, 388.77, 11.41]
let hasBigPurchase = expenses.contains { $0 > 100 }
// 'hasBigPurc ...
Swift可选值优化示例详解
目录nil 的语义nil 在内存中的表示nil 的优化BoolStringClassEnum结语nil 的语义
在 Objective-C 中,nil 表示空对象,它本质是一个指向 0x00000000 的指针。但对于非指针的值类型,OC 中是无法表示_没有值_这个概念的,比如 NSInteger,它可以是 0,也可以是其他任何值,但就是不 ...