随笔分类 -  IOS开发问题积累

摘要:一、Xcode 调试器 我的项目是国内某办公软件的iOS客户端, 代码量极其庞大, 编译一次至少30min以上。 关键是,如果你遇到问题的时候,调试下断点,需要至少5min才能断下来,走下一步,又重复同样的流程 二、问题排查 实在忍受不了,只能在网上寻找方案, 只有说遇到类似的情况的, 但是没有有效 阅读全文
posted @ 2022-02-25 19:46 兜兜有糖的博客 阅读(497) 评论(0) 推荐(0) 编辑
摘要:一、背景 我们在布局中,经常会遇到视图元素排列时空间不足或者空间过大的情况,在这种场景下面,不同的布局方式有不同的方法: 绝对布局frame:纯靠计算过程控制,获取父视图的大小,根据需求,计算自己需要的大小,并设置到frame上去 iOS autolayout:这里更先进一点,将视图中的约束预设进布 阅读全文
posted @ 2022-01-13 18:53 兜兜有糖的博客 阅读(101) 评论(0) 推荐(0) 编辑
摘要:一、如果是普通文本,那么可以采用NSString的方法,代码如下: import UIKit import PlaygroundSupport class MyViewController : UIViewController { override func loadView() { let vie 阅读全文
posted @ 2022-01-13 11:37 兜兜有糖的博客 阅读(117) 评论(0) 推荐(0) 编辑
摘要:一、代码示例 // // ViewController.swift // LazyTest // // Created by lilun.ios on 2021/7/30. // import UIKit class ViewController: UIViewController { lazy v 阅读全文
posted @ 2021-07-30 19:00 兜兜有糖的博客 阅读(410) 评论(0) 推荐(0) 编辑
摘要:一、背景 Swift具备完善的Error handle机制,对于纯Swift下面的Error,在编码的时候能够正确处理。 在使用try? 处理抛出Error的方法的时候,会忽略Error,直接返回nil 二、Swift 与 Objc下面的Exception 下面的代码是经常遇到的一种场景,Swift 阅读全文
posted @ 2021-07-13 16:08 兜兜有糖的博客 阅读(118) 评论(0) 推荐(0) 编辑
摘要:Swift中的String、Array、Dictionary等容器类型默认实现了写时复制,这个操作在多线程下面可能会带来错误 https://bugs.swift.org/browse/SR-6543 阅读全文
posted @ 2021-02-23 17:51 兜兜有糖的博客 阅读(155) 评论(0) 推荐(0) 编辑
摘要:一、UIScrollView 双指放大手势,双击放大实现 在设置UIScrollView的frame后、maxZoomScale 和 minZoomScale之后,UIScrollView会自然支持双指捏合的手势,自然支持放大缩小 对于双击的手势,只要添加一个tap双击的识别器,然后在响应的时候,计 阅读全文
posted @ 2019-07-22 14:02 兜兜有糖的博客 阅读(464) 评论(0) 推荐(0) 编辑
摘要:最近犯了个低级错误,在sourceTree中通过右键,直接将 工程文件加入到 ignore列表中。提交之后,别人拉下来代码一直显示报错 在意识到上面这个错误之后,一直想恢复却恢复不了,尝试从SorceTree 偏好设置中也不行 后来发现,在git根目录下面还有一个叫做 .gitignore到隐藏文件 阅读全文
posted @ 2019-07-17 11:49 兜兜有糖的博客 阅读(2868) 评论(0) 推荐(0) 编辑
摘要:一、为什么静态符号会冲突 无论macho二进制类型,还是Windows上的PE格式,还是Linux上的ELF格式,里面都是按照特定格式存放的一个程序的代码和数据 比如Linux下的可执行文件格式,大致分为下面这些段 参考:https://www.ibm.com/developerworks/cn/l 阅读全文
posted @ 2019-06-29 15:24 兜兜有糖的博客 阅读(1386) 评论(0) 推荐(0) 编辑
摘要:一、继承 UITableView和UIImageView , 重写 DrawRect 方法,然后里面留空 ImageView Table 结果 二、分析 对于UITableView来说,最终显示的内容是 cell 和 header, UITableView只是作为一个容器,系统不在这个容器上面绘制任 阅读全文
posted @ 2019-06-15 16:21 兜兜有糖的博客 阅读(397) 评论(0) 推荐(0) 编辑
摘要:一、问题 如果继承UILabel实现自己的一个Label,并且在子类的DrawRect方法中留空,什么都不写,会发生什么? 代码如下: VC Label 注释调调用父类的DrawRect方法之后,会发现屏幕上面什么都没有 打开Xcode调试之后,会发现存在一个透明的图层 二、问题分析 我们知道,UI 阅读全文
posted @ 2019-06-15 15:58 兜兜有糖的博客 阅读(708) 评论(0) 推荐(0) 编辑
摘要:一、如何从xib自定义一个CustomView 1)首先创建继承自UIView的子类CustomView 2)创建名字为CustomView的View的Interface文件 3)在xib的资源文件中修改class为CustomView 4)编辑xib,拖拽控件 代码如下: xib 如下 注意cla 阅读全文
posted @ 2019-04-18 19:38 兜兜有糖的博客 阅读(1745) 评论(0) 推荐(0) 编辑
摘要:一、最近米家App进入前台的时候上报上来一个Crash 从Crash类型可以查询出来,Termination Reason: Namespace SPRINGBOARD, Code 0x8badf00d 代表主线程无响应,被watchdog杀掉了 主线程被阻塞,无非几种原因、死锁,方法执行耗时过长。 阅读全文
posted @ 2019-04-04 11:37 兜兜有糖的博客 阅读(4044) 评论(0) 推荐(0) 编辑
摘要:一、在工作的代码有一段while-True轮训的逻辑,循环中主要的工作是阻塞的IO 代码大概如下: 正常的时候,因为io的阻塞关系,线程会在io的方法处等待返回,偶然发现特定情况下,阻塞io方法直接放回错误,这样会不停的进行死循环,因此我想看看死循环会带来什么问题 我写了下面的代码 上面的代码如果运 阅读全文
posted @ 2019-03-20 16:49 兜兜有糖的博客 阅读(1655) 评论(0) 推荐(1) 编辑
摘要:一、先看下面的代码 下面的代码会crash,Xcode提示的信息是 -[NSArray release] NSArray send release to deleacted object, 也就是NSArray对象重复释放了 在ARC下面,一个方法返回的是autorelease对象的时候,通过NSI 阅读全文
posted @ 2019-01-22 15:37 兜兜有糖的博客 阅读(418) 评论(0) 推荐(0) 编辑
摘要:一、API说明 https://cloud.tencent.com/document/product/276/3212 二、推送脚本 #!/usr/local/bin/python3 # -*- coding: utf-8 -*- __author__ = 'qqvipfunction' impor 阅读全文
posted @ 2019-01-09 20:27 兜兜有糖的博客 阅读(420) 评论(0) 推荐(0) 编辑
摘要:一、weak引用实现原理探究 首先对《Xcode 10 下如何调试objc4-723》建立的objc源码调试工程表示感谢! 地址:https://www.jianshu.com/p/9e0fc8295c4b 大多数文章阐述了基本过程: 其中涉及到一个数据结构 通过下面的代码取得 也就是全局的side 阅读全文
posted @ 2018-11-13 14:30 兜兜有糖的博客 阅读(860) 评论(0) 推荐(0) 编辑
摘要:一、题目描述 题目来自网上一个博客,具体类似如下 问代码执行之后会发生什么? 二、解析 在设置target的setter中,是非线程安全的,未加锁;因此多线程访问这个属性setter方法的时候潜在crash的情况 因为setter大概如下 对应runtime代码 在release的方法最后会调用ob 阅读全文
posted @ 2018-11-09 15:32 兜兜有糖的博客 阅读(498) 评论(0) 推荐(0) 编辑
摘要:一、引用计数 引用计数是Objetive-C语言的内存管理机制,用于管理OC对象(通常指包含isa指针的结构体)的内存。 一个对象的引用计数为大于0的计数,表示这个对象被持有,不能被释放,当引用计数为0时表示这个对象需要被释放掉。 改变引用计数的方法有,retain、release、alloc、au 阅读全文
posted @ 2018-11-09 11:26 兜兜有糖的博客 阅读(1252) 评论(0) 推荐(1) 编辑
摘要:一、需求 固定UILabel的宽度大小在一定范围,内容能够自动伸缩 二、实施 首先加好约束: 约束加好之后,需要设置好Autoshrink属性,包括Line break、BaseLine、以及缩小字体所能够达到的最小字体大小。 如果需要在UILabel中添加padding,可以增加以下代码: htt 阅读全文
posted @ 2018-10-16 19:54 兜兜有糖的博客 阅读(370) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示