首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
weakstrongself
掘友等级
iOS搬砖
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
133
文章 129
沸点 4
赞
133
返回
|
搜索文章
赞
文章( 129 )
沸点( 4 )
iOS13-Xcode11-UIScrollView的新功能-在storyboard上即可设置ContentSize-更高效的布局
在Xcode11之前,ScrollView的布局是比较繁琐且不易理解的,主要是因为ScrollView的特殊性(需指定contentSize)造成的。 Xcode11之后呢,虽然官方加入了SwiftUI新框架让我们更加容易的制作UI,但尚处起步阶段,故在storyboard(I…
基于CocoaPods的组件化原理及私有库实践
智人能在残酷的进化大战中存活下来,原因之一就是智人懂得将知识沉淀成外物,辅助彼此之间的合作,从而使得整个群体产生了规模效应,即1+1>2的效果。 从一个角度上说,石器时代是基于石器的组件化的时代,因为老张家的石矛(或其它石头利器)借给了老王,一样可以拿去狩猎。要想实现这个目的,…
iOS笔记:进一步认识 ==、isEqual、hash
最近在新接手的项目中进行对象比较,对同一个对象调用isEqual来比较,结果竟然是NO。猜想是对象重写了isEqual方法。查看代码如下: 果然重写了isEqual方法,虽然方法不太严谨,没有首先判断==,代码看起来也什么大问题,但是同一个对象比较也不应该返回NO啊。看了下面一…
iOS中的Block完全详解
其中最重要的就是invoke函数指针和descriptor块的描述.invoke函数指针它指向了块的实现,它的void*参数传入的是块的结构体. descriptor的结构体中包含了块大小以及两个重要的辅助函数指针等.我们注意到块的布局中,最下面一部分是捕获到的变量,前面提到的…
架构系列—深入了解MVC, MVP, MVVM, VIPER架构设计模式
1. 架构设计模式简介 业务处理:日常开发中DAO、Service都可以算作是Model层衍生出来的业务请求模块,负责用于处理用户提交的请求。 数据承载:用于专门承载业务数据的实体类,比如开发中定义的Student、User等各种Entity. 2. MVC 苹果认为传统的MV…
Protocol Buffers 在 iOS 中的使用
对大多数的应用来说,后台服务、传输和存储数据都是个重要的模块。开发者在给一个 web service 写接口时,通常使用 JSON 或者 XML 来发送和接收数据,然后根据这些数据生成结构并解析。 尽管有大量的 API 和框架帮助我们序列化和反序列化,来支持一些后台接口开发的日…
如何在模块化/组件化项目中实现 ObjC-Swift 混编?
... 这里我们重点关注的是如何实现 Swift 代码和 ObjC 代码的相互调用。 1. 在一个 App Target 内部混编 如果是在一个 App Target 内部混编的话,当我们在 ObjC 项目中新建 Swift 文件时或者在 Swift 项目中新建 ObjC 文件…
源码浅析 SDWebImage 5.5.2 - WebP Plugin
本文基于 SDWebImage 5.5.2。重读的原因也是由于发现它的 API 在不断迭代,许多结构已经不同与早期版本,同时也是为了做一个记录。整体分析可以查看上一篇文章:源码浅析 SDWebImage 5.5.2。 本篇主要关于其插件系统,如何简单的通过插件来支持多样化的图片…
ObjC 多线程简析(一)-多线程简述和线程锁的基本应用
在iOS开发中,经常会遇到将耗时操作放在子线程中执行的情况。 一般情况下我们会使用NSThread、NSOperation和GCD来实现多线程的相关操作。初次之外pthread也可以用于多线程的相关开发。 pthread提供了一套C语言的api,它是跨平台的,需要开发人员自行管…
ObjC 多线程简析(二)- os_unfair_lock的类型和自旋锁与互斥锁的比较
我们知道自旋锁加锁的时候,等待锁的线程处于忙等状态,并且占用着CPU的资源。而互斥锁加锁的时候,等待锁的线程处于休眠状态,不会占用CPU的资源。 那么我们探就加锁状态下的等待锁的线程的状态就可以得出os_unfair_lock这把锁的类型。 依然使用上一篇中提到的卖票的案例。,…
下一页
关注了
42
关注者
1
收藏集
10
关注标签
33
加入于
2017-08-19