iOS 组件
文章平均质量分 77
源码下载: https://github.com/nai-chen/IosBlog
假装你是大灰狼
移动端工程师
展开
-
iOS Background Modes
iOS 后台运行的规则应用的运行状态分为以下五种:Not running: 应用还没有启动,或者应用正在运行但是途中被系统停止。Inactive: 当前应用正在前台运行,但是并不接收事件(当前或许正在执行其它代码)。一般每当应用要从一个状态切换到另一个不同的状态时,中途过渡会短暂停留在此状态。唯一在此状态停留时间比较长的情况是:当用户锁屏时,或者系统提示用户去响应某些(诸如电话来电、有未读短信等)事件的时候。Active: 当前应用正在前台运行,并且接收事件。这是应用正在前台运行时所处的正常状态S转载 2022-02-09 17:48:51 · 1477 阅读 · 0 评论 -
iOS UIViewController跳转
1. UINavigationController跳转UIViewController可以利用UINavigationController跳转,采用压栈和出栈的方式,进行UIViewController的管理。// 添加指定控制器,并显示- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;// 弹出控制器,显示上一个控制器- (nullable UIViewController原创 2022-01-11 15:35:09 · 2813 阅读 · 0 评论 -
iOS 程序执行顺序和UIViewController的生命周期
一. iOS程序的启动执行顺序程序启动顺序图具体执行流程1.程序入口进入main函数,设置AppDelegate称为函数的代理2.程序完成加载[AppDelegate application:didFinishLaunchingWithOptions:]3.创建window窗口4.程序被激活[AppDelegate applicationDidBecomeActive:]5.当点击command+H时(针对模拟器,手机是当点击home键)程序取消激活状态[AppDelegate a转载 2021-12-22 15:05:04 · 735 阅读 · 0 评论 -
IOS 多线程:『GCD』详尽总结
1. GCD 简介什么是 『GCD』 ?我们先来看看百度百科的解释简单了解下相关概念。引自 百度百科Grand Central Dispatch(GCD) 是 Apple 开发的一个多核编程的较新的解决方法。它主要用于优化应用程序以支持多核处理器以及其他对称多处理系统。它是一个在线程池模式的基础上执行的并发任务。在 Mac OS X 10.6 雪豹中首次推出,也可在 iOS 4 及以上版本使用。那为什么我们要使用 GCD 呢?因为使用 GCD 有很多好处啊,具体如下:GCD 可用于多核的并转载 2021-12-14 17:57:14 · 1441 阅读 · 0 评论 -
iOS CoreData的使用
CoreData是一个专门管理数据服务的框架,把OC对象和存储在SQLite文件中的数据进行互相转换,极大地方便了开发者在数据服务方面的开发。1. 创建CoreData在文件创建区下,选择【Core Data】下的【Data Model】输入CoreData的文件名Model.xcdatamodelModel.xcdatamodeld文件默认是Swift的,如果想要改成oc,可以在打开Model.xcdatamodeld文件,在右侧工具栏中修改。2. 创建EntityCoreData文件下原创 2021-08-25 14:32:38 · 5884 阅读 · 0 评论 -
iOS 深入理解CADisplayLink和NSTimer
简单地说,它就是一个定时器,每隔几毫秒刷新一次屏幕。是一个能让我们以和屏幕刷新率相同的频率将内容画到屏幕上的定时器。我们在应用中创建一个新的对象,把它添加到一个runloop中,并给它提供一个target和selector在屏幕刷新的时候调用。一但以特定的模式注册到runloop之后,每当屏幕需要刷新的时候,runloop就会调用绑定的target上的selector,这时target可以读到的每次调用的时间戳,用来准备下一帧显示需要的数据。例如一个视频应用使用时间戳来计算下一帧要显示的视频数据。转载 2021-08-24 16:07:14 · 872 阅读 · 0 评论 -
iOS NSKeyedArchiver和NSKeyedUnarchiver
NSKeyedArchiver和NSKeyedUnarchiver两个类以供我们把对象序列化和反序列化。Person是// Person.h@interface Person : NSObject<NSSecureCoding>@property (nonatomic, copy) NSString* name;@property (nonatomic, assign) NSInteger age;@end// Person.m@implementation Person原创 2021-05-18 18:02:12 · 1320 阅读 · 2 评论 -
iOS NSFileManager文件管理(沙盒)
每个App的沙盒目录结构, 都如下图所示:默认情况下, 每个沙盒含有1个应用程序包和三个文件夹: Documents, Library和tmp. 因为沙盒机制, 应用只能在这几个目录读写文件.MyApp.app:应用程序包, 这里面存放的是应用程序文件, 包括资源文件和可执行文件.访问路径:NSString *budlePath = [[NSBundle mainBundle] bundlePath];Documents:应用程序在运行时生成的一些需要长久保存的数据(比如: 个人设置等信息转载 2021-05-18 13:40:46 · 2136 阅读 · 0 评论 -
iOS NSBundle常用方法及解释
1、使用类方法创建一个NSBundler对象+ (NSBundle *)mainBundle;eg:[NSBundle mailBundle];2、使用路径获取一个NSBundle 对象,这个路径应该是一个目录的全路径+ (NSBundle *)bundleWithPath:(NSString *)path;eg: NSString *path = [mailBundle resourcePath]; NSBundle *language = [NSBundle bundleWithPa转载 2021-04-26 10:43:16 · 1497 阅读 · 0 评论 -
iOS NSURLSession的简单使用
一.为什么要使用NSURLSession来替换NSURLConnection1.在iOS9.0之后,以前使用的NSURLConnection过期,苹果推荐使用NSURLSession来替换NSURLConnection完成网路请求相关操作。2.NSURLSession的优势:NSURLSession支持http2.0协议处理下载任务的时候可以直接把数据下载到磁盘中支持后台下载和上传同一个session发送多次请求,只需要建立一次连接(复用了TCP)提供了全局的session并且可以统一配置,转载 2021-04-22 10:45:46 · 1428 阅读 · 0 评论 -
iOS NSURLConnection的简单使用
因为最近在做项目的过程中牵扯到一些离线断点下载的需求,用到了NSURLConnection和NSRULSession这两个对象,而平时工作大多数的时间都是和AFNetworking打交道,所以对这两个对象用起来不是那么的熟练,所以想借着今天整理一下,以备以后查看我们都知道在iOS7后,NSURLSession对象基本代替了NSURLConnection进行网络开发,在iOS9后,NSURLConnection相关方法被完全的弃用,iOS系统有向下兼容的特性,尽管NSURLConnection已经被弃用,但转载 2021-04-21 16:20:57 · 490 阅读 · 0 评论 -
iOS SafeArea安全区域
1. 前言本文的出发点是对iOS设备的适配, 我们之前的适配只是考虑设备的尺寸, 设备的方向, 而在iPhoneX出来之后呢, 我们又多了一种考量, 那就是刘海和底部横条(HomeIndicator), 我们通过UIKit11.0之后新增的API来解决这个问题, 达到不同设备尺寸, 不同设备方向的完美适配。2. 之前的做法注: 该方法只适用于设备的竖屏, 如果是横屏就会出现问题我们是用宏, 来解决这个问题的, 像这样:/** 设备屏幕宽度 */#define LCLScreenWidth [[U转载 2021-04-15 14:25:29 · 8459 阅读 · 0 评论 -
iOS UIWindow简介
首先来看一下UIWindow 继承关系@interface UIWindow : UIView@end从上面的继承关系可以看出UIWindow是UIview的子类,所以UIWindow就是一个View,就是增加许多系统的能力,只不过使用的时候,一般那它当容器用,他很像Android的PopupWindow,UIWindow有个属性是rootViewController来跟UIViewController相连,然后依他为附着体,来进行真正的显示。方法和属性NS_CLASS_AVAILABLE_I转载 2021-01-21 17:15:15 · 907 阅读 · 0 评论 -
iOS UIScreen简介
UIScreen对象定义了一种基于硬件的显示相关的属性,UIScreen对象可以充当iOS设备物理屏幕的替代者(相当于屏幕)。使用这个类来获得每个显示器设备的屏幕对象。每个屏幕对象中包含了一些屏幕相关的属性。获取可用的屏幕对象:1.返回一个包含所有连接到设备的屏幕的数组:+ (NSArray *)screens NS_AVAILABLE_IOS(3_2);返回的数组包含主屏幕加上任何其他连接到设备的屏幕。 主屏幕在返回的数组中 总是 在索引0 。 并非所有设备都支持外部(连接)显示器(如iphon转载 2020-12-02 16:19:28 · 1001 阅读 · 0 评论 -
iOS NSNotificationCenter简介
NSNotificationCenter通知是一种消息广播的实现机制,可以在不同对象之间发送通知进而实现通信。原创 2020-11-18 13:20:00 · 1109 阅读 · 0 评论 -
iOS SceneDelegate应用
Xcode 11 建新工程默认会创建通过UIScene管理多个UIWindow的应用,工程中除了AppDelegate外还会有一个SceneDelegate,这是为了实现iPadOS支持多窗口的结果。AppDelegate.h不再有window属性,window属性被定义在了SceneDelegate.h中,AppDelegate中有新增的关于scene的代理方法,SceneDelegate中也有相应的代理方法。因此,当我们用Xcode11针对不同版本的iOS开发应用时,就要做一些适配。创建好一个工程后,转载 2020-11-10 15:24:02 · 790 阅读 · 0 评论 -
iOS NSUserDefaults简介
1. NSUserDefaults初始化NSUserDefaults以键值对的形式进行数据存储,适合存储轻量级的本地数据。iOS系统是以一个.plist文件来统一管理。NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];2. 主要方法NSUserDefaults支持的数据结构有NSInteger,BOOL,NSURL,NSString,NSArray, NSDictionary,NSData等,NSUserDef原创 2020-11-06 09:38:22 · 777 阅读 · 0 评论