
iOS
文章平均质量分 72
opentogether
给自己一个目标,让生命为他燃烧
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
每次clone都会有:Enter passphrase for key ‘/Users/xxx/.ssh/id_rsa‘:
是每次使用 SSH 连接 Git 服务器(如 gitlab.alibaba-inc.com)时,系统要求你输入私钥的 passphrase(密钥口令)。这个 passphrase 是用于加密你的私钥文件的密码,目的是防止他人拿到你的私钥后随意使用。每次 Git 使用 SSH 协议进行操作(如 clone、pull、push),都需要用到你的私钥来验证身份,因此你需要输入 passphrase 来解密私钥。如果你使用的是 macOS,可以将私钥添加到钥匙串中,这样开机登录后就会自动加载,无需手动输入。原创 2025-06-06 21:40:53 · 1017 阅读 · 0 评论 -
OCframework编译Swift
主工程添加swift文件(空实现即可,可以没有内容),但不要添加bright文件!#import "{工程名}/{工程名}-Swift.h" //02。#import "{工程名}/{工程名}-Swift.h"需要对外暴露的OC文件,需要放到OC的.h文件中。原创 2025-05-19 22:43:03 · 316 阅读 · 0 评论 -
PODS_ROOT、BUILT_PRODUCTS_DIR和SRCROOT有什么区别
└── DerivedData/ # Xcode 生成(隐藏目录)通过理解这三者的差异,可以精准控制文件引用,避免 90% 的路径相关构建错误。是三个核心的 Xcode 环境变量,它们的区别主要体现在。# 使用 PODS_ROOT 调用 Pod 提供的工具。非 Pod 管理的资源(图片、本地化文件等)CocoaPods 生成的配置文件(如。的子路径(因平台/配置不同而变化)# 引用 Pod 中的头文件。# 引用项目自身的头文件。# Pod 管理的头文件。# 构建生成的框架头文件。原创 2025-04-11 22:04:48 · 656 阅读 · 0 评论 -
Project、Workspace、Target、Module相互的依赖关系
在iOS开发中,Project、Workspace、Target 和 Module 是不同层次的概念,它们的定义范围大小和依赖关系如下:从大到小排序:Workspace范围最大,可以包含多个 Project 和共享的构建环境。用于管理多个相关 Project 的协作和依赖。Project包含一个或多个 Target 和 Module。是代码、资源和构建设置的基本组织单元。Target是 Project 中的一个具体构建目标,定义了如何生成一个产品(如App、Framework)。一个 Project 可以有原创 2025-02-25 15:45:30 · 615 阅读 · 0 评论 -
中介者模式(Mediator Pattern)、桥接模式(Bridge Pattern) 和 策略模式(Strategy Pattern)
模式目的/特点使用场景Swift 示例中介者模式降低类之间的耦合,通过中介者来协调交互多个对象之间存在复杂交互时,避免直接引用其他对象聊天系统中用户通过中介者交换消息桥接模式将抽象和实现分离,允许它们独立变化抽象部分和实现部分变化频繁的场景图形绘制系统,不同的形状和绘制方式策略模式将算法封装成独立的策略类,使得算法可以互换需要根据不同情境使用不同算法的场景排序算法的选择,可以动态切换不同的排序策略这些设计模式帮助解决不同类型的耦合问题,允许我们编写更加灵活、可扩展、可维护的代码。原创 2024-12-29 22:09:42 · 706 阅读 · 0 评论 -
iOS 中的 nil、Nil、NULL、NSNull 僵尸对象和野指针
iOS 中的 nil、Nil、NULL、NSNull 僵尸对象和野指针-优快云博客原创 2024-12-28 11:48:47 · 971 阅读 · 0 评论 -
Swift Type Erasure(类型擦除)
*类型擦除(Type Erasure)**的核心思想就是将泛型类型封装成一个类型擦除对象,该对象不再暴露泛型类型的具体实现细节,而是保留协议的接口。这样一来,泛型类型就可以与其它类型协作,像普通的类型一样被存储和操作。在 Swift 中,使用类型擦除可以将泛型协议封装成一个固定类型,隐藏类型的具体细节,使得协议的使用更加灵活。add(_:)用于添加一个Itemget()用于获取一个Item。和。?0?""和都遵循了Container协议,但它们分别持有不同类型的元素(Int和String。原创 2024-12-19 21:09:39 · 874 阅读 · 0 评论 -
Swift 的动态性
Swift 的动态性主要通过动态派发、反射、类型检查、动态成员查找等特性实现。虽然 Swift 是一门静态类型的语言,但它也提供了许多动态特性,使得在某些特定场景下,可以像动态语言一样进行编程。这些动态特性尤其在与 Objective-C 代码交互时,或者在需要灵活处理不确定结构时,能够极大地增强开发者的灵活性。不过,Swift 中的动态特性通常是基于 Objective-C 运行时(如@objc)的支持,因此在纯 Swift 代码中动态性相对有限。原创 2024-12-19 15:03:21 · 1099 阅读 · 0 评论 -
iOS 应用的生命周期
活跃状态(Active)应用处于前台,并正在运行,用户可以与应用交互。应用的 UI 是可见的,且可以接收用户输入。相关方法:应用从后台或非活跃状态进入前台,恢复活动状态时调用。:应用从后台进入前台,但尚未恢复活跃状态时调用。非活跃状态(Inactive)应用仍然处于前台,但由于一些事件(例如电话呼入、系统通知)应用未能响应用户输入。应用 UI 是可见的,但无法进行交互。相关方法:应用将进入非活跃状态时调用,通常是因为电话来电、用户锁屏等原因。后台状态(Background)原创 2024-12-17 16:01:45 · 1439 阅读 · 0 评论 -
锁-读写锁-Swift
【代码】锁-读写锁-Swift。原创 2024-12-02 15:37:15 · 413 阅读 · 0 评论 -
iOS 锁总结(cc)
在C++中,你可以使用来构建一个自定义的自旋锁。这种方法比使用更灵活,因为它允许你存储更复杂的状态或使用更高级的原子操作。C++复制代码12345private:67public:8910// 自旋等待111213141516171819202122// 临界区代码2324实现自旋锁的方法有多种,包括使用系统提供的锁(如)、基于的自定义实现、利用第三方库以及基于信号量的方法。选择哪种方法取决于你的具体需求和项目的约束条件。原创 2024-07-02 18:25:19 · 1052 阅读 · 2 评论 -
KVO原理
需要注意的是,阻止 KVO 可能会违反类的设计意图,并可能导致使用该类的其他代码出现问题。因此,除非有充分的理由,否则通常不建议禁用 KVO。如果你的类是为其他开发者使用的 API 的一部分,最好在设计时就考虑到这一点,并在文档中明确指出哪些属性支持 KVO,哪些不支持。这样,这个属性就不会暴露在类的公共头文件中,外部对象也就不知道这个属性的存在,从而无法对其进行 KVO。此时,可以在类的文档中明确指出某些属性不支持 KVO,并且不保证对这些属性的 KVO 监听会有任何效果。这意味着在属性变化时手动调用。原创 2024-06-15 17:40:19 · 1100 阅读 · 0 评论 -
实例对象类对象元类流程图
大家都熟悉这个图,但是初学者,有些关系对应不上。我用打印的方式,直接填到九宫格中,帮助大家理解。原创 2024-05-10 16:43:55 · 1060 阅读 · 0 评论 -
AutoreleasePool如何实现?一个autorealese对象/block在什么时刻释放?
在Objective-C中,AutoreleasePool是由NSAutoreleasePool类实现的。它使用了一个栈结构来管理自动释放池的创建和销毁。原创 2024-05-29 19:29:39 · 983 阅读 · 0 评论 -
消息查找、消息转发机制
代码直观:方法在编译时就已经定义,代码清晰易懂,便于维护。编译时检查:编译器可以对所有方法进行类型检查和语法检查,减少运行时错误。性能:由于方法在编译时已经确定,不需要在运行时进行方法解析,调用速度更快。直接预定义方法适用于插件数量有限且变化不频繁的场景,代码简单直观,性能较好。动态方法解析则适用于需要高扩展性和灵活性的场景,可以在运行时动态添加或修改方法,但增加了代码的复杂性和运行时的性能开销。在实际应用中,可以根据具体需求选择合适的方法。如果插件数量较少且变化不大,直接预定义方法可能更合适。原创 2024-06-12 18:02:18 · 1034 阅读 · 0 评论 -
iOS开发中copy on write
不可变对象的复制:当对一个不可变对象执行复制操作时,实际上只会创建该对象的引用计数副本,而不会真正复制对象的内容。这样可以节省内存,并提高性能。通过使用Copy-On-Write机制,可以减少不必要的内存复制和内存消耗,提高性能和内存效率。方法复制为NSString时,实际上只会创建一个不可变的NSString对象,而不会复制真正的字符串内容,直到修改其中一个副本为止。方法复制为NSArray时,实际上只会创建一个不可变的NSArray对象,并共享内部的数据结构,直到修改其中一个副本为止。原创 2024-06-07 10:13:58 · 312 阅读 · 0 评论 -
oc中synchronized的实现原理
可重入性:OC(以及Java)中的synchronized是可重入的,即一个线程在持有某个对象的锁时,可以再次进入该对象的同步代码块或方法,而不会导致死锁。锁的升级和降级:在某些情况下(如Java中),为了提高性能,锁的状态可能会从偏向锁、轻量级锁升级到重量级锁,或者在竞争降低时降级。在Objective-C(OC)中,synchronized的实现原理主要是基于对象锁(monitor lock)的机制来确保线程安全的。例如,当对象被某个线程持有时,这些位会被设置为特定的值,以表示锁的状态。原创 2024-06-01 20:06:54 · 547 阅读 · 0 评论 -
RxSwift实战经验
RxSwift常见易混关键词原创 2022-11-19 16:25:45 · 650 阅读 · 1 评论 -
Connection refused
Mac 打开、编辑 .bash_profile 文件 - 风小可 - 博客园参考:http://mirrors.ustc.edu.cn/help/homebrew-bottles.html 或者: 1、创建 .bash_profile 2、查看 、编辑 .bash_profihttps://www.cnblogs.com/xkfeng/p/9335162.html整理:curl: (7) Failed to connect to raw.githubusercontent.com port 443.转载 2022-03-27 13:15:18 · 341 阅读 · 0 评论 -
Mac OS下更换ruby源
While executing gem转载 2022-03-27 13:09:16 · 971 阅读 · 0 评论 -
彻底搞懂Token、Session和Cookie
彻底搞懂Token、Session和Cookiehttps://www.cnblogs.com/slivens/p/12902051.htmliOS:https://blog.youkuaiyun.com/zhoushuangjian511/article/details/54290419https://blog.youkuaiyun.com/SwiftIOS_watsUp/article/details/100512362原创 2021-07-25 14:36:49 · 154 阅读 · 0 评论 -
Trailing closure in this context is confusable with the body of the statement; pass as a parenthesiz
API接口不一致;Archive之后,报警,即可知道到底是什么;自动补全;if let index = self.noteLists.firstIndex { (noteInfo) -> Bool in noteInfo.noteId == speechInfo.noteId}{}).disposed(by: disposeBag)let tindex = self.noteLists.firstIndex(where: { (noteInfo) -> Bool in no.原创 2020-08-03 23:47:05 · 239 阅读 · 0 评论 -
!!微信读书—crash自动修复
微信读书—crash自动修复https://wereadteam.github.io/2016/05/03/WeRead-Performance/https://wereadteam.github.io/archives/https://wereadteam.github.io/2016/05/23/GYBootingProtection/转载 2020-07-15 09:42:11 · 492 阅读 · 0 评论 -
tap.cancelsTouchesInView
tap.cancelsTouchesInView原创 2016-05-11 11:24:08 · 424 阅读 · 0 评论 -
会报编译器警告的Xcode 6.3新特性:Nullability Annotations
Nullability Annotations转载 2016-05-30 16:20:02 · 309 阅读 · 0 评论 -
Swift - 网络请求报App Transport Security has blocked a cleartext错
使用Xcode7编写iOS9应用时,如果获取http://数据时会报如下错误:转载 2016-05-30 17:09:53 · 336 阅读 · 0 评论 -
“could not build module UIKit”问题的解决
“could not build module UIKit”问题的解决转载 2016-05-31 09:25:49 · 893 阅读 · 0 评论 -
AFNetworking 3.0封装post请求body里面内容是空的
AFNetworking 3.0封装post请求body里面内容是空的原创 2016-06-01 08:11:00 · 5097 阅读 · 1 评论 -
iOS教你轻松打造瀑布流Layout-最好的UICollectionViewDemo
iOS教你轻松打造瀑布流Layout-最好的UICollectionViewDemo转载 2016-06-24 17:50:46 · 1872 阅读 · 0 评论 -
自动化测试方案
UIAutomation进行iOS自动化测试http://www.spasvo.com/news/html/201342120438.html疑问:如何在命令行中执行自动化测试脚本????原创 2016-06-24 20:32:16 · 577 阅读 · 0 评论 -
'Invalid type in JSON write (NSConcreteMutableData)'
'Invalid type in JSON write (NSConcreteMutableData)'转载 2016-06-06 10:15:17 · 1427 阅读 · 0 评论 -
AFNetworking 同时向服务端传送参数+图片
AFNetworking 同时向服务端传送参数+图片原创 2016-06-06 10:05:00 · 818 阅读 · 0 评论 -
the operation couldn't be completed.
the operation couldn't be completed.原创 2016-06-12 13:22:35 · 1071 阅读 · 0 评论 -
Swift 学习笔记(三)删除 Main.storyboard 和 LaunchScreen.storyboard
删除 Main.storyboard 和 LaunchScreen.storyboard转载 2016-07-01 11:32:33 · 2285 阅读 · 0 评论 -
libAFNetworking.a(AFHTTPRequestOperation.o)' does not contain bitcode.
libAFNetworking转载 2016-06-16 07:21:21 · 1150 阅读 · 0 评论 -
you must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obta
bitcode转载 2016-06-16 07:22:30 · 1070 阅读 · 0 评论 -
iOS中使用钥匙串
iOS中使用钥匙串转载 2016-06-16 07:31:58 · 1179 阅读 · 0 评论 -
iOS 9适配技巧(更新版)
iOS 9适配技巧转载 2016-06-16 07:33:00 · 628 阅读 · 0 评论 -
源码推荐(9.30):iOS 9 新特性的代码示例,Crash捕捉 崩溃捕捉
iOS 9 新特性的代码示例,Crash捕捉 崩溃捕捉转载 2016-06-16 07:34:07 · 607 阅读 · 0 评论 -
UIInterfaceOrientation和UIDeviceOrientation的区别
UIInterfaceOrientation和UIDeviceOrientation的区别转载 2016-06-16 07:37:12 · 2380 阅读 · 0 评论