
iOS
文章平均质量分 72
iOS开发
听雨轩_dmg
这个作者很懒,什么都没留下…
展开
-
iOS 切换桌面Logo
日前开发项目的时候有一个需求就是要切换手机App的Logo,起初非常纳闷,这个Logo还能切换吗?于是我便开始查阅资料,原来苹果从iOS10.3开始支持动态更换应用logo了。原创 2023-02-10 11:07:38 · 562 阅读 · 1 评论 -
APP1 唤醒另一个 APP2
这里的白名单就是你App2中URL Schemes 添加的内容。OK,如有不对,欢迎大家指正,大家加油!原创 2022-12-01 11:21:13 · 741 阅读 · 0 评论 -
iOS 导入自定义字体不生效
iOS自定义字体不生效原创 2022-09-09 11:32:30 · 1591 阅读 · 0 评论 -
NSTimer 循环引用
先来一个TimerDemo助助兴。哟呵呵定时器在项目开发中会经常使用,下边就是最简单的一个定时器@interface ViewController ()// self 对 timer 强引用@property (nonatomic, strong) NSTimer *timer;@end- (void)viewDidLoad { [super viewDidLoad]; self.timer = [NSTimer scheduledTimerWithTimeInterval:1原创 2021-06-09 16:31:52 · 288 阅读 · 0 评论 -
OC方法调用流程
文章目录消息发送动态解析消息转发抛出异常总结OC调用方法的机制其实就是消息转发机制,最终都是转成objc_msgSend的函数调用。接下来我们就一起消息发送动态解析一旦消息发送阶段没有找到方法,那么就会执行动态解析阶段,会调用两个方法对象方法 调用 + (BOOL)resolveInstanceMethod:(SEL)sel类方法 调用+ (BOOL)resolveClassMethod:(SEL)sel这两个方法基本一致,这里我们介绍一下对象方法.h@interface DDPerson原创 2021-05-27 10:51:31 · 1145 阅读 · 0 评论 -
Block的变量捕获
文章目录变量分类变量捕获后的block变量分类在了解变量捕获之前,我们首先了解一下C语言中变量的分类。C语言中变量分为三类全局变量: 作用域在全局,哪个地方都能调用局部变量:作用域在大括号中,只能在大括号内调用block变量捕获分类// 全局变量int = 10;int main(int argc, const char * argv[]) { @autoreleasepool { // 自动变量 auto int b = 20;原创 2021-05-11 22:16:58 · 286 阅读 · 1 评论 -
Block本质
文章目录底层实现Block分类ARC环境自动copy的情况总结底层实现项目开发中我们经常使用block,今天我们就一起研究一下block,我们一起看一下block到底是什么。int main(int argc, const char * argv[]) { @autoreleasepool { void(^Block)(void) = ^{ NSLog(@"你好呀 Block"); }; Block() }原创 2021-05-11 16:04:00 · 285 阅读 · 1 评论 -
iOS底层学习——Category(三)
文章目录分类不能直接添加成员变量通过关联对象添加成员变量分类不能直接添加成员变量前边两篇文章我们介绍了什么是Category。接下来我们看下如何给category添加成员变量通过读取分类的源码我们知道struct category_t { const char *name; classref_t cls; struct method_list_t *instanceMethods; // 对象方法列表 struct method_list_t *classMethods; // 类方法列表原创 2021-04-26 15:56:06 · 243 阅读 · 0 评论 -
iOS底层学习——Category(二)
文章目录+load方法+load方法总结+initialize方法+initialize方法总结+load方法我们先来看下load方法是什么时间加载的// 我们创建一个Person对象@interface DDPerson : NSObject@end@implementation DDPerson+ (void)load { NSLog(@"DDPerson ------------ load");}@end// 创建 Eat 分类@interface DDPerson原创 2021-04-23 16:05:10 · 96 阅读 · 0 评论 -
iOS底层学习——Category(一)
文章目录分类的目的底层结构加载过程分类的目的我们为什么会用到分类呢,我觉得有以下原因为了让不同功能模块化分别写在不同文件中,便于管理和后期修改与维护减少单个文件的代码量这就可以让不同开发者共同完成一个类的创建给系统对象添加一些我们自定的方法底层结构我们给一个类添加分类以后到底是如何实现的呢。首先我们给类创建分类之后,在程序运行的时候,Runtime会生成一个category_t的结构体,如下struct category_t { const char *name; classre原创 2021-04-17 18:21:01 · 129 阅读 · 0 评论 -
iOS底层学习——KVC
文章目录简单使用实现原理赋值原理取值原理补充——KVC能触发KVO吗简单使用/// 创建学生对象@interface DDStudent : NSObject@property (nonatomic, strong) NSString *name;@end/// 创建人对象@interface DDPerson : NSObject@property (nonatomic, assign) int age;/// 把学生对象设置为属性@property (nonatomic, stron原创 2021-04-08 09:55:57 · 287 阅读 · 0 评论 -
iOS底层学习——KVO
文章目录使用底层原理使用/// 创建Person类@interface DDPerson : NSObject@property (nonatomic, assign) int age;@end底层原理当我们创建原创 2021-04-07 21:47:05 · 331 阅读 · 0 评论 -
iOS底层学习——OC对象中的isa和superclass
文章目录对象分类isa和superclass案例分析对象分类我们都知道OC对象分为实例对象、类对象、和元类对象 ,那么它们到底存放着哪些信息呢。实例对象:也就是instance对象,存放着isa,成员变量(值)。类对象:也就是class对象,存放着isa,superclass,成员变量(名字),属性,对象方法,协议信息元类对象:也就是mata-class对象,存放着isa,superclass,类方法由上图我们可以看出对象都包含一个isa,而类对象和元类对象另外还要一个superclass,接原创 2021-04-05 17:02:23 · 331 阅读 · 0 评论 -
xcode12打包报错
xcode升级到最新版本12后,模拟器和手机都能运行,等到打包的时候居然报错了,说是Target版本最低兼容iOS12。王德发!!!,还不让我兼容低版本了。接下来一顿操作,终于解决.解决方案: App这边最低兼容iOS10,但是呢Podfile文件中的iOS版本写的是9.0。修改成一样,然后Clean再打包不报错了。大家加油!!!...原创 2020-12-08 14:08:58 · 529 阅读 · 0 评论 -
UICollectionViewCell图片不显示或者空白
自定义UICollectionViewCell添加了UIImageView,结果第一能加载出图片,再次进入就不出现图片变成白色了。一通检查之后找到了原因,记录一下。前提: 我使用的Masonry 布局,在自定义cell中设置了Cell的阴影和圆角,结果就显示不出来。解决方法: 添加圆角或者阴影前需调用layoutIfNeeded方法- (void)configUILayer { [self layoutIfNeeded]; self.layer.shadowColor = [UICol原创 2020-10-21 16:41:09 · 1386 阅读 · 0 评论 -
swift MD5加密
最近使用到了MD5加密,就写了这个扩展,看代码吧。详情请查看Demo// MARK: ------------------------ 字符串加密// 首先导入加密库import CommonCryptoextension String { /// MD5加密类型 enum MD5EncryptType { /// 32位小写 case lowercase32 /// 32位大写 case uppercase32原创 2020-07-15 16:31:30 · 1370 阅读 · 0 评论 -
苹果开发者账号续费不成功的解决方案
本篇文章主要是解决苹果开发者账号续费的时候出现 “支付授权失败” 的问题1.登录开发者网站登录之后如果出现 Learn More 那么我们需要在手机端下载 “开发者” App之后我们登录账号按步骤进行注册认证,注册认证完之后,我们再次登录开发者网站就会看到不一样了,接下来,我们就正常续费就行了。2.续费失败在我们续费的过程中,当信息填写完成,点击提交的时候,如果出现失败,并且提示 “支付授权失败”。解决方案:确保我们的信用卡,同时支持 银联和Visa 或者 银联和MasterCard确保信原创 2020-05-22 15:31:13 · 4027 阅读 · 0 评论 -
iOS做到程序退到后台不会挂起
当应用退到后台或者锁屏状态下,过段时间程序就会被挂起,这时我们就需要开启一个后台服务来防止后台程序挂起,我是通过一个定时器来开启服务的。直接上代码。step1: 首先开启后台模式中的音频,如下图step2: 在AppDelegate.m文件中导入头文件 #import <AVFoundation/AVFoundation.h>#import <AVFoundation/AV...原创 2020-03-02 17:27:46 · 1118 阅读 · 0 评论 -
iOS 开发小技巧
文章目录1.复制内容到剪切板2.退回到桌面(等同于按Home键)3.遍历安装的字体1.复制内容到剪切板UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];pasteboard.string = @“testString”; //testString是你要复制的内容2.退回到桌面(等同于按Home键)[[UIApplic...原创 2020-01-16 11:13:33 · 3025 阅读 · 1 评论 -
集成谷歌地图不显示的问题
最近做了一个项目,要用到谷歌地图,这也是第一次用谷歌地图,当按照文档集成以后,地图就是不显示。最后鼓捣半天,终于出来了。希望能帮助入坑的小伙伴。由于谷歌地图是国外服务器,想必大家都会想办法登录谷歌开发者平台的!!!????????????。原因一:配置的key是错误的检查你创建应用时的key是否与程序中配置的一致。进入控制台—打开您创建的项目–点击导航菜单–API和服务–凭据原因二:没有开启API库如果...原创 2020-01-12 20:09:52 · 4226 阅读 · 0 评论 -
AVAudioPlayer后台播放音频及同时播放音乐问题
详情请查看Demo,如果您觉得对您有帮助的话,别忘了Star一下哟,如果有什么问题请指正。如何开启后台播放功能且程序不会挂起当应用退到后台或者锁屏状态下,过段时间程序就会被挂起,这时我们就需要开启一个后台服务来防止后台程序挂起,我是通过一个定时器来开启服务的。直接上代码。step1: 首先开启后台模式中的音频,如下图step2: 在AppDelegate.m文件中导入头文件 #import...原创 2020-01-11 15:49:58 · 1505 阅读 · 0 评论 -
iOS13暗黑模式适配(项目开发版)
苹果公司在iOS13推出了暗黑模式,苹果的建议是让开发者尽快适配。前段时间微信就推出了暗黑模式。所以我们也需要尽快适应。直接看效果 Demo暗黑模式适配适配包含两方面,颜色适配和图片适配。接下来我们就这两方面开始我们的适配之旅。颜色适配iOS13之后苹果将UIColor改变成了动态颜色,UIColor会根据不同模式来改变不同的颜色。苹果提供给我们了一些系统颜色。这些颜色请参考UIInte...原创 2020-01-10 23:24:57 · 991 阅读 · 0 评论 -
iOS蓝牙修改设备名后没有修改的问题
现在做了一个项目,需要用蓝牙对接硬件。有一个需求就是修改设备名字。然后我就很开心的发指令修改。然后写入数据成功后,但是蓝牙设备名一直没有变。这就然我感到很诧异,难道是我的指令发送错了吗?接下来就是漫长的研究。以下代码的前提是我已经把设备名字“147”改成了“369”#pragma mark - 扫描设备,发现设备的回调- (void)centralManager:(CBCentralMana...原创 2019-06-12 09:35:07 · 2928 阅读 · 0 评论 -
iOS常用plist文件
#全国城市列表百度网盘:链接: https://pan.baidu.com/s/1UwaVqQHphiQ8q7zLcCXuXw 提取码: jkbg原创 2019-09-06 11:41:20 · 241 阅读 · 0 评论