
iOS开发
主要讲述Objective-C篇
Holothurian
千里之行跬步起、江海之成小流积。有志始知蓬莱近、无为总觉咫尺远。
展开
-
MARS的了解
是微信官方的终端基础组件, 是一个业务性无关,平台性无关 使用C++ 编写的基础组件。原创 2023-04-01 16:52:20 · 517 阅读 · 0 评论 -
类的结构里为什么会有rw、ro以及rwe
类的结构里为什么会有rw、ro和rwe?原创 2023-03-27 17:00:11 · 1079 阅读 · 0 评论 -
iOS内存泄漏检测方法
1.Retain Cycle循环引用、Block强引用2.NSTimer释放不当3.第三方提供方法造成的内存泄漏4.CoreFoundation方式申请的内存、忘记释放原创 2023-03-21 16:07:04 · 1447 阅读 · 0 评论 -
内存五大区
内存被划分为五大区域。原创 2023-03-20 16:34:36 · 294 阅读 · 0 评论 -
iOS性能优化
衡量应用程序性能优化的一些标准所谓性能,无非是一种指标,在软件开发中,该指标往往会关注两个方面: 效率和消耗.效率主要是指代码的执行效率、动画的流畅度、应用的冷启动时间和热启动时间、网络通信的阻塞时间等等;消耗主要是指内存的消耗、有没有内存泄漏、CPU的占用率、耗电与应用程序包大小等等;代码的执行效率算法依据的数据基础** 时间复杂度** 是用来描述算法执行效率的一个标准; 时间频度,即一个算法解决问题所消耗的时间.编译器产生的代码质量和语言的执行效率问题的输入规模硬件的执原创 2021-09-25 20:30:37 · 240 阅读 · 0 评论 -
GCD简介
1、GCD是: Grand Central Dispatch 、纯C语言,提供了非常多的强大函数2、GCD的优势: GCD是苹果公司为多核的并行运算提出的解决方案、 GCD会自动利用更多的CPU内核(双核、四核) GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程)、程序员只需要高度GCD想要执行什么任务,不需要编写任何线程管理代码 3、将任务添加到队列、并且指定执行任务的函数 任务使用block封装 任务的block没有参数也没有返回值 执行任务的函数原创 2021-05-25 10:02:21 · 6776 阅读 · 1 评论 -
Quartz2D基本绘图
Quartz 2D是一个二维绘图引擎,同时支持iOS和Mac系统。 利用UIKit框架,我们可以搭建和实现一些简单的,常见的UI界面。但是,有些UI界面极其复杂,而且比较个性化,用普通的UI控件无法实现,这时可以利用Quartz2D技术将控件内部的结构画出来,自定义控件的样子。上下文Graphics Context:封装了Quartz绘制图像到输出设备的信息它保存了绘图信息,绘图状态以及图形的输出目标。 坐标系:跟UI保持一致 内存管理:出现Create,copy...原创 2021-05-02 17:35:49 · 223 阅读 · 0 评论 -
iOS 自动化打包:The Signiant transfer engine‘s status is DISCONNECTED
使用Shell脚本在终端自动化打包、一直报错失去连接、类似这个样子2021-02-19 16:31:15.979 altool[35861:438801] [2021-02-19 16:31:15 CST] <Transport Protocol> INFO: The Signiant transfer engine's status is DISCONNECTED2021-02-19 16:31:15.982 altool[35861:438801] [2021-02-19 16:31原创 2021-02-19 17:00:35 · 319 阅读 · 0 评论 -
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/universal-darwin20/rbconfi
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/universal-darwin20/rbconfig.rb:229: warning: Insecure world writable dir /usr/local/bin in PATH, mode 040777/usr/local/bin 文件被赋予了777权限、不安全;去除该警告的方法为sudo chmod go-w /usr/local/b.原创 2021-01-25 17:16:17 · 5456 阅读 · 0 评论 -
iOS直角矩形图片绘制
1、效果如下、本文仅展示黑色直角矩形背景图片绘制方式、文字为Label后来附加2、使用自定义的UIImageView、绘制 image、通过贝塞尔曲线、四点连线填充颜色完成、从(0,0) ---> (width,0) ---> (width-5,height) ---> (0,height) 四点、 连接上path、 填充上颜色、 获取上下文图片3、实现代码@implementation HSRectangeView- (instancetype)initWit原创 2020-11-23 11:03:59 · 489 阅读 · 0 评论 -
-canOpenURL:failed for URL:“weixinULAPI://“-error:“This app is not allowed to query for scheme “
1、接入微信、做授权登录时、控制台报如下错误信息:-canOpenURL: failed for URL: "weixinULAPI://" - error: "This app is not allowed to query for scheme weixinulapi"2、如此意味着微信的白名单没有配置、在info.plist中添加LSApplicationQueriesSchemes...原创 2020-11-23 10:00:37 · 10005 阅读 · 0 评论 -
iOS Universal Link配置问题
1、苹果证书后台、在AppID上添加Associated Domains功能2、将对应AppID的Dev、Adhoc、Dis描述文件重新生成3、在Xcode中的Sign & Capabilities中、添加Capability---- Associated Domains4、在Associated Domains中配置你要使用的通用链接、必须以applinks:开头、然后配置Domainsapplinks:www.baidu.com5、配置指定文件、创建一个内容为JSON格式..原创 2020-11-16 09:16:08 · 1584 阅读 · 0 评论 -
Cornerstone中branch合并到trunk显示tree conflict *.a
1、选中trunk主干项目2、点击Cornerstone的Merge、3、选Synchronize Branch 、4、Merge from选中要合并的branch部分项目、5、Performing dry run merge for “XXXX”之后、显示有 XXX.a(tree conflect)时、6、取消合并、删掉主干trunk项目中的 XXX.a文件、然后Commit7、UserInterfaceState.xcuserstate/ Breakpoints_v2.xcbkp原创 2020-11-06 14:11:23 · 720 阅读 · 0 评论 -
iOS获取Provisioning Profiles路径并查看文件
描述文件路径~/Library/MobileDevice/Provisioning Profiles原创 2020-08-20 15:58:20 · 1877 阅读 · 0 评论 -
iOS 获取当前钥匙串中有效的证书(含SHA1值)
使用终端敲入如下命令、可快速查看当前钥匙串未过期可使用的证书及证书对应的SHA1值。security find-identity -v -p codesigning原创 2020-08-20 14:48:56 · 2677 阅读 · 0 评论 -
iOS开发马甲包被拒
1、更换整体项目。2、更换BundleID、苹果账号、换服务器、换域名IP地址。3、修改代码、逻辑混淆、添加依赖库。4、更换主题色、AppIcon、界面改变。5、项目简介含糊描述。6、上线时隐藏部分功能。...原创 2020-08-20 14:28:13 · 232 阅读 · 0 评论 -
iOS开发lldb调试技巧
一、常规用法p 打印数据类型po 打印对象二、frame指令查看代码帧信息1、frame info 打印当前数据帧块的信息2、frame variable 获取当前数据帧中的变量信息3、frame select [count] 切换当前数据帧三、Thread相关指令操作线程1、thread backtrace 查看当前线程中所有数据帧2、thread list 查看当前所有被激活的线程3、thread info 查看当前正在调试的线程信息4、原创 2020-08-20 14:20:02 · 247 阅读 · 0 评论 -
应用首次启动引入导图
根据应用首次启动来引入导图,文中提供了ScrollView的使用方法,根视图控制器的切换方法及类方法的使用。原创 2016-08-05 14:48:43 · 315 阅读 · 0 评论 -
iOS设备判断
NSInteger device = [UIDevice currentDevice].userInterfaceIdiom原创 2016-08-04 08:40:32 · 501 阅读 · 0 评论 -
UIApplication的网络状态指示器networkActivityIndicatorVisible怎么用?
1.UIApplication其中的一个属性:网络状态指示器的可视化(networkActivityIndicatorVisible),用于在状态栏(StatusBar)上显示菊花转的图标,表明网络状态。但是开启后会一直显示。 [UIApplicationsharedApplication].networkActivityIndicatorVisible =YES;...原创 2016-08-19 11:09:36 · 4091 阅读 · 0 评论 -
iOS 富文本类型
一、OC中富文本类型NSFontAttributeName 设置字体属性,默认值:字体:Helvetica(Neue) 字号:12 NSForegroundColorAttributeNam 设置字体颜色,取值为 UIColor对象,默认值为黑色 NSBackgroundColorAttributeName 设置字体所在区域背景颜色,取值为 UIColor对象,默认值为nil, 透明色 NSLigatureAttributeName原创 2020-05-19 12:13:07 · 617 阅读 · 0 评论 -
Organizer左侧图标清除
Xcode每次打包Archive完成后出现的界面叫Organizer界面、位于Window菜单下、快捷键为Command+Shift+Option+O然而每次登录一个苹果账号或者打完一个新项目包时、左边就会出现他们账号下的项目图标。图标太多、就不放了。清除办法为:打开Finder、Command+Shift+G输入~/Library/Developer/Xcode/...原创 2019-11-28 15:50:28 · 485 阅读 · 0 评论 -
ERROR ITMS-90717: "Invalid App Store Icon.
iOS打包上传图片检查阶段出错、ERROR ITMS-90717: "Invalid App Store Icon.原创 2019-11-21 11:09:42 · 904 阅读 · 1 评论 -
CUICatalog: Invalid asset name supplied: (null)
CUICatalog: Invalid asset name supplied: (null)项目里看到这个警告Log.原创 2017-04-24 15:11:13 · 932 阅读 · 0 评论 -
ConerStone3.0.3下载地址
下载最新版SVN:ConerStone3.0.3http://soft.macx.cn/soft3947.htm原创 2017-07-04 18:12:15 · 583 阅读 · 0 评论 -
Xcode9新特性
Xcode 9包括整体质量改进以及广泛的新功能。翻译 2017-09-25 10:10:09 · 1186 阅读 · 0 评论 -
iOS模拟器上有图,真机上却没有
iOS模拟器真机图片问题。原创 2017-09-11 10:48:28 · 629 阅读 · 0 评论 -
TableView顶部空出20像素
设置组头或组尾的时候,会发现这样的问题。平白无故空出20px。原创 2017-09-22 15:16:13 · 3231 阅读 · 0 评论 -
iOS去除UITableView左边15像素空白问题
iOS8以后使用以下方法可以去除UITableView默认的线条左边十五像素空白问题。原创 2017-10-19 19:54:40 · 536 阅读 · 0 评论 -
iOS开发~静态库.a中的armv7,armv7s,arm64,i386,x86_64含义
Build Active Architecture Only:一般debug的时候可以选择设置为yes,release的时候要改为no,以适应不同设备。转载 2017-10-13 14:11:56 · 900 阅读 · 0 评论 -
iOS如何查看静态库.a文件是否支持i386?
打开终端:输入 lipo -info原创 2017-10-13 14:19:21 · 1783 阅读 · 0 评论 -
使用CocoaPods时提示安装高版本ruby遇到的坑。
安装高版本ruby源,sudo gem install -n /usr/local/bin cocoa pods后提示的错误原创 2016-08-25 09:30:23 · 18182 阅读 · 2 评论 -
常用的方法几个dispatch_async方法
为了避免界面在处理耗时的操作时卡死,比如读取网络数据,IO,数据库读写等,我们会在另外一个线程中处理这些操作,然后通知主线程更新界面。用GCD实现这个流程的操作比前面介绍的NSThread NSOperation的方法都要简单。转载 2017-05-31 15:12:56 · 5233 阅读 · 0 评论 -
__block和__weak修饰符的区别?
1、__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。原创 2017-05-31 08:49:48 · 715 阅读 · 0 评论 -
Multiple methods named ‘count:‘ found with mismatched result, parameter type or attributes
早上使用UICollectionView的DataSource协议方法 numberOfItemsInSection时,因为用了二位数组的常用调用方式从而一直报错。原创 2017-04-26 10:11:04 · 11244 阅读 · 0 评论 -
修改UITextField的placeholder的字体颜色、大小
修改textField的placeholder的字体颜色、大小原创 2017-05-17 09:45:15 · 679 阅读 · 0 评论 -
iOS收起键盘方法
iOS收起键盘方法原创 2017-05-17 09:57:54 · 896 阅读 · 0 评论 -
Unsupported device model
最近在使用Xcode8.3.1时遇到不少尴尬的问题,比如真机调试提示Unsupported device model:原创 2017-05-09 08:58:08 · 1783 阅读 · 0 评论 -
Masonry使用中equalTo和mas_equalTo的区别
Masonry使用中equalTo和mas_equalTo的区别原创 2017-05-09 10:14:24 · 3001 阅读 · 0 评论 -
libc++abi.dylib`__cxa_throw:
集成第三方的播放控件,使用[AVAudioPlayer play]会产生__cxa_throw异常,自己找原因找了好一会,最终发现是因为自己设置了全局断点导致的,选为Objective-C就没问题了。或者删掉全局断点。原创 2017-04-27 15:27:58 · 541 阅读 · 0 评论