
iOS
mlibai
这个作者很懒,什么都没留下…
展开
-
安装或升级Cocoapods失败:Failed to build gem native extension
安装Cocoapods,或使用Cocoapods报错“Failed to build gem native extension”的解决办法。原创 2022-09-19 15:08:23 · 1828 阅读 · 0 评论 -
实现NSFastEnumeration协议
一、接口文档实现NSFastEnumeration协议就可以用for-in来进行遍历集合了,而这个协议也仅仅需要实现一个方法就可以了。typedef struct { // 用来保存迭代过程中的状态,默认值 0 unsigned long state; // 把要迭代的元素放这个 C 数组里 id __unsafe_unretained _Nullable * _Nullable itemsPtr; // 迭代过程中,集合是否被修改的标志位 unsigne原创 2021-08-17 20:31:03 · 191 阅读 · 0 评论 -
在C语言中,各数据类型的大小
在C语言中,各数据类型的变量所占用的内存大小,单位字节。类型32位编译器64位编译器说明*48一个指针变量的字节长度char11字符short int22int44unsigned int44float44double88long48long long88unsig...原创 2019-11-11 20:59:37 · 694 阅读 · 0 评论 -
XZCarouselView:iOS 轮播图、仿微信大图查看界面转场效果
`XZCarouselView ` 除了支持无限轮播、自动轮播、轮播方向、缩放等常用功能外,还支持内容自适应、获取轮播进度、自适应布局方向(针对阿拉伯语等自右向左布局等系统)、重用机制、添加自定义切换动画等功能,基本能满足大部分业务中对轮播图的需求。`XZCarouselView ` 最大的特点应该就是支持切换进度事件的获取,特别方便做联动效果。原创 2019-03-19 00:14:34 · 546 阅读 · 0 评论 -
如何在 Objective-C 中实现 Swift 中的 defer 一样的功能
今天要介绍的是 XZKit 框架的基础模块 XZKitConstants 模块提供的一个小功能 defer 宏。什么是 defer ?defer 是一种延迟执行机制,就是希望某一段代码能在前面写,但是能够在后面(比如作用域末尾)执行。最在 iOS 开发中,会用到这样一些成对使用的函数,比如 UIGraphicsBeginImageContext 与 UIGraphicsEndImageCont...原创 2019-04-19 00:14:40 · 379 阅读 · 0 评论 -
iOS多线程之dispatch_once剖析
一,兴趣是最好的老师。在IOS开发中,为保证单例在整个程序运行中只被初始化一次,单线程的时候,通过静态变量可以实现;但是多线程的出现,使得在极端条件下,单例也可能返回了不同的对象。如在单例初始化完成前,多个进程同时访问单例,那么这些进程可能都获得了不同的单例对象。苹果提供了dispatch_once(dispatch_once_t *predicate,dispatch_block_t ...原创 2015-07-18 20:38:03 · 7584 阅读 · 0 评论 -
Objective-C类目Category属性的实现方法
在某些情况下,我们可能需要在Category中为类添加属性,但是Category中无法生成实例变量,所以需要用到运行时的值动态绑定功能。// 在 .h 文件中@interface NSObject (SomeCategory)@property (nonatomic, strong, setter=xx_setValue:) id xx_value;@end// 在 .m 文...原创 2015-08-17 21:34:10 · 440 阅读 · 0 评论 -
iOS开发是否需要缓存UIColor
在开发中,发现有的项目对 UIColor 对象进行了缓存。个人感觉,对于 UIColor 这样的对象,其本身记录的信息有限,创建它应该不会对APP性能产生显著的影响的,为此特别写了一个 Demo 验证了一下。主要代码如下:#import <sys/time.h>// 获取时间点,精确到微秒- (double)getCurrentTime { struct ti...原创 2016-06-22 17:46:41 · 760 阅读 · 0 评论