![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
移动互联网-iOS笔记
文章平均质量分 64
OC,Swift之路
☆MOON
踮起脚尖,离阳光更近一些!
展开
-
iOS/Mac项目接入字体(壳工程/组件库)
iOS/Mac项目来说接入非系统的外部字体,或者第三方字体,放在壳工程下,操作步骤以及使用来说相对简单,并且常用,如果放到组件库中多需要注意Bundle的影响,以及多了字体库的安装步骤原创 2023-12-27 09:28:03 · 779 阅读 · 0 评论 -
github可访问但无法clone问题
【代码】github可访问但无法clone问题。原创 2023-12-05 11:43:43 · 679 阅读 · 0 评论 -
【iOS】Mac M1安装iPhone及iPad的app时设置问题
由于 苹果M1芯片的Mac可用安装iPhone以及iPad应用,因为开发者并没有适配Mac,因此产生了很多奇怪问题,这里总结归纳Mac M1安装iPhone和iPad应用时遇到的问题。原创 2023-10-13 10:36:41 · 2010 阅读 · 0 评论 -
【Xcode-宏定义配置】
ifdef DEBUG / / DEBUG模式 #else / / 非DEBUG模式 #endif。原创 2023-10-11 09:22:08 · 1246 阅读 · 0 评论 -
判断iPhone、iPad应用运行在M1的Mac OS上
【代码】判断iPhone、iPad应用运行在M1的Mac OS上。原创 2023-10-08 16:35:11 · 187 阅读 · 0 评论 -
iPhone越狱检测
//判断手机是否越狱func JailBreak() -> Bool { #if DEBUG //根据是否能打开cydia判断 let status1 = UIApplication().canOpenURL(URL.init(string: "cydia://")!) //根据是否能获取所有应用的名称判断 没有越狱的设备是没有读取所有应用名称的权限的 let status2 = FileManager.default.fileExists(atPath: "原创 2021-07-22 22:15:29 · 382 阅读 · 0 评论 -
Swift基本语法-简例
1,变量与常量var mutableVal = 11mutableVal = 30let val = 20let valDouble:Double = 502,字符串拼接let value1 = "swift is"let value2 = 666let total = value1 + String(value2)let value3 = "I think \(value1) best."3,多行字符串let value = "is sure."let moreValue =原创 2021-08-02 20:15:12 · 424 阅读 · 0 评论 -
iOS-APP崩溃分析
程序崩溃是宣判app死亡的直接因素,仔细看工程崩溃日志,会有一些相应的信号输出给我们,根据崩溃类型我们可以快速的思考到与其类型相对应的崩溃场景,那么都有哪些崩溃类型呢?又有哪些崩溃信号呢?原创 2022-10-27 16:01:25 · 2222 阅读 · 0 评论 -
iOS开发-PHAsset转UIImage坑点
使用requestImageForAsset的坑点,及优化建议原创 2022-10-27 10:31:51 · 1333 阅读 · 0 评论 -
iOS-block探索
躬耕8年iOS 前京南互联网大厂研发-大民哥带你认识iOS中block实现及原理,后续会随着项目使用不断更新,如有疑问欢迎留言讨论原创 2022-05-29 18:53:04 · 158 阅读 · 0 评论 -
界面优化-iOS
躬耕8年iOS 前京南互联网大厂研发-大民哥带你认识iOS中界面优化相关方法,后续会随着项目使用不断更新,如有疑问欢迎留言讨论原创 2022-05-15 01:52:34 · 161 阅读 · 0 评论 -
内存管理-操作系统、iOS
躬耕8年iOS 前京南互联网大厂研发-大民哥带给你认识iOS中内存管理的原理,关于iOS内存管理原理,如有疑问欢迎留言讨论原创 2022-05-15 01:46:35 · 523 阅读 · 0 评论 -
iOS启动优化-二进制重排与Clang插桩
躬耕8年iOS 前京南互联网大厂研发-大民哥带你认识iOS启动优化-二进制重排与Clang插桩,玩转iOS二进制重排和Clang插桩这一篇文章就够了,如有疑问欢迎留言讨论原创 2022-05-15 01:45:10 · 644 阅读 · 0 评论 -
iOS14-Widget开发、SwiftUI应用
躬耕8年iOS 前京南互联网大厂研发-大民哥带给你千万级日活项目中iOS14Widget小组件项目实战经验分享,玩转iOS14及以上Widget,这一篇文章就够了,如有疑问欢迎留言讨论原创 2022-05-15 01:37:26 · 727 阅读 · 0 评论 -
iOS底层-多线程、GCD分析、锁、runloop
躬耕8年iOS 前京南互联网大厂研发-大民哥带你认识iOS中多线程,GCD,锁,runloop,后续会随着项目使用不断更新,如有疑问欢迎留言讨论原创 2022-05-15 01:23:59 · 425 阅读 · 0 评论 -
iOS底层-KVO分析与自定义
躬耕8年iOS 前京南互联网大厂研发-大民哥带你认识与官方文档不一样的KVC探索,文章持续更新中,如有问题还请留言一起讨论分析原创 2022-05-15 01:21:51 · 288 阅读 · 0 评论 -
iOS底层-KVC分析与自定义
躬耕8年iOS 前京南互联网大厂研发-大民哥带你认识与官方文档不一样的KVC探索,后续会随着项目使用不断更新,如有疑问欢迎留言讨论原创 2022-05-15 01:19:50 · 223 阅读 · 0 评论 -
iOS底层-类的加载原理
躬耕8年iOS 前京南互联网大厂研发-大民哥带给你千万级日活项目中日常经验-类的加载原理,关于类的加载原理,这一篇文章就够了,如有疑问欢迎留言讨论原创 2022-05-15 01:17:27 · 443 阅读 · 0 评论 -
iOS底层-应用程序加载
躬耕8年iOS 前京南互联网大厂研发-大民哥带给你千万级日活项目中日常经验-应用程序的加载原理,关于应用程序的加载原理,这一篇文章就够了,如有疑问欢迎留言讨论原创 2022-05-15 01:13:32 · 234 阅读 · 0 评论 -
iOS蓝牙协议
躬耕8年iOS 前京南互联网大厂研发-大民哥带你认识iOS蓝牙协议,如有疑问欢迎留言讨论原创 2022-05-15 01:10:44 · 1307 阅读 · 0 评论 -
iOS底层-msgSend消息原理
躬耕8年iOS 前京南互联网大厂研发-大民哥带给你千万级日活项目中日常经验-OC底层msgSend原理,关于msgSend消息的runtime原理,这一篇文章就够了,如有疑问欢迎留言讨论原创 2022-05-15 01:05:46 · 482 阅读 · 0 评论 -
路由器wifi通信开发-iOS
躬耕8年iOS 前京南互联网大厂研发-大民哥带认识智能终端WiFi通信,如有疑问欢迎留言讨论原创 2022-02-28 17:31:54 · 680 阅读 · 0 评论 -
架构设计
躬耕8年iOS 前京南互联网大厂研发-大民哥带给你认识大厂架构设计的方法论,关于架构设计,如有疑问欢迎留言讨论原创 2022-02-18 20:50:59 · 769 阅读 · 0 评论 -
iOS工程化之-组件化
躬耕8年iOS 前京南互联网圈-大民哥带你认识工程组件化,以及组件解藕,组件通信方式,后续会随着项目使用不断更新,如有疑问欢迎留言讨论原创 2022-02-17 14:51:38 · 1034 阅读 · 1 评论 -
iOS中更新版权 Copyright
iOS中更新版权 // Copyright ©️背景由于公司组织架构调整,增量code可能会有新的版权©️调整,因此需要更新Copyright方法修改 Created by xxx 系统偏好设置->用户群组->当前用户(然后左下角开锁)右键高级选项->全名;修改 Copyright xxx 打开项目文件夹 找到.xcodeproj文件 右键显示包含内容 找到project.pbxproj文件 然后打开 修改ORGANIZATIONNAME = “xxx”;原创 2021-12-29 17:03:40 · 1723 阅读 · 0 评论 -
OC/Swift工程去除MainStoryBoard
OC/Swift工程去除ManStoryBoard背景iOS ManStoryBoard 在实际开发过程中,使用场景并不多,(做做demo除外),但删除它的次数也不多,给CV战士提供一套快捷入口准备Xcode工程OC去除ManStoryBoard1,删除Main.storyboard文件2,工程-> TARGETS -> Info.plist中 删除Main storyboard file base name3,工程AppDelegate.m改造//// AppDele原创 2021-12-28 16:36:59 · 1414 阅读 · 0 评论 -
OC/Swift的MD5方式
OC/Swift 开发过程中不可或缺的MD5方式原创 2021-12-28 14:28:49 · 469 阅读 · 0 评论 -
iOS开发-iPhone屏幕尺寸
收集了目前最新流行的iPhone屏幕尺寸名称尺寸(英寸 对角线)像素(px 物理)像素(pt 逻辑)适用图片iPhone 12/13 Pro Max6.72778x1284428x926@3xiPhone 12/13 (12/13 Pro)6.12532 x 1170390x844@3xiPhone 13 mini5.42340 x 1080340x780@3xiPhone 12 Pro Max6.72778x1284428x9原创 2021-11-24 20:25:46 · 2536 阅读 · 0 评论 -
iOS底层-几个常用的Clang方法
iOS中几个常用的Clang方法背景把目标文件编译成c++文件UIKit报错问题`xcrun`命令背景iOS开发中我们定义的一些属性,成员变量和方法,在编译的时候都做了什么,我们不得而知,使用Clang出来一些.cpp文件等,可以帮助我们更好的去分析Clang是一个C语言、C++、Objective-C语言的轻量级编译器。源代码发布于BSD协议下。 Clang将支持其普通lambda表达式、返回类型的简化处理以及更好的处理constexpr关键字。Clang是一个由Apple主导编写,基于LLVM原创 2021-10-09 13:17:04 · 416 阅读 · 0 评论 -
iOS底层-OC对象原理(下)
背景我们说在整个苹果的底层有太多内容,跟黑洞似的,这时候我们拿出对象最熟悉的陌生人作为一个案例开始分析iOS底层OC对象原理(上),但我们也不知道怎么分析,于是我们通过LLDB,汇编,符号断点,找到底层源码并LLDB调试,通过底层源码我们开始流程分析,得到alloc的流程分析图,后来我们通过探索alloc我们把注意力转移到了内存大小上,然后去验证对象的内存得出一些字节对齐的算法和一些原理,然而我们对对象真正的大小还一无所知。对象类型内存多大?对象实际内存大小和系统分配的内存大小是否一样?内存是怎么原创 2021-09-28 00:18:07 · 213 阅读 · 0 评论 -
iOS底层-OC对象原理(上)
背景iOS开发,我们每天都在 alloc对象,但是我们jump to Definition到NSObject底层能看到的仅有个未实现的alloc方法,而我们对alloc底层的逻辑却一无所知。alloc底层有什么、alloc做了什么、init做了什么、alloc、init和new到底有什么关系和区别呢?实例简单的代码和打印(分别输出对象的内容,对象的地址,以及对象指针的地址)示例:ZMPerson *p1 = [ZMPerson alloc];ZMPerson *p2 = [p1 init]原创 2021-09-28 00:14:00 · 281 阅读 · 0 评论 -
iOS获取某个组件bundle
Swift获取某个bundle/// 根据podName找到bundlefunc ext_SwiftBundle(podName:String) -> Bundle? { let bundlePath:String? = ext_SwiftBundlePath(podName:podName) return Bundle(path: bundlePath ?? "")}/// 根据podName找到bundlePathfunc ext_SwiftBundlePath(podN原创 2021-09-17 16:55:25 · 1159 阅读 · 0 评论 -
iOS获取当前window的控制器
Swift 获取当前屏幕显示的控制器这篇文章你将学到repeat…while循环如果满足while条件会一直循环,直到不满足while条件/// 获取当前屏幕显示的viewcontroller static func ex_presentController() -> UIViewController? { var result: UIViewController? = nil var rootVC: UIViewController? = nil原创 2021-09-17 16:30:15 · 1498 阅读 · 0 评论 -
iOS全覆盖16进制颜色-正则
背景:运营颜色配置错误,导致客户端显示异常,全覆盖法:NSString *CheckColorStr(NSString *str) { if (!str.length) { return @""; } NSString *pattern = @"([A-Fa-f0-9]+)"; NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:原创 2021-09-03 21:03:08 · 207 阅读 · 0 评论 -
iOS判断是否为刘海屏
#define MN_INTERFACE_IS_PHONE ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)//是否刘海屏- (BOOL)isIPhoneNotchScreen{ if (!MN_INTERFACE_IS_PHONE) { return NO; } BOOL result = NO; if (@available(iOS 11.0, *原创 2021-07-23 21:29:14 · 910 阅读 · 2 评论