首页
学习
活动
专区
工具
TVP
发布

iOS 开发杂谈

专栏成员
58
文章
95241
阅读量
24
订阅数
CocoaPods 使用总结
CocoaPods 是专门为 iOS 工程提供第三方依赖库的管理工具,通过 CocoaPods,我们可以更方便地管理每个第三方库的版本,而且不需要我们做太多的配置,就可以直观、集中和自动化地管理我们项目的第三方库。
s_在路上
2020-02-13
1.9K0
Apple Pay 编程指南
在发布近两年、历经各种周折之后,苹果的 Apple Pay 移动支付服务终于在 2016 年 2 月 18 日来到了中国大陆。
s_在路上
2019-03-19
1.2K0
Apple Pay 申请 MerchantID
登录苹果开发者中心,在 Identifiers 下选择 Merchant IDs,点击右上角添加按钮添加 Merchant ID; 输入描述信息和标识符,点击继续
s_在路上
2019-03-19
2.2K0
Apple Pay 整体流程
下图为目前国内 Apple Pay 支付接入的一个通用的流程(银联 API 模式),仅供参考:
s_在路上
2019-03-19
3K0
Apple Pay 接入工程
创建一个工程设置其 Bundle ID 必须和描述文件中的 Bundle ID 一致。
s_在路上
2019-03-15
1.6K0
浅谈 __attribute__
__attribute__ 是一个编译器指令,其实是 GNU C 的一种机制,本质是一个编译器的指令,在声明的时候可以提供一些属性,在编译阶段起作用,来做多样化的错误检查和高级优化。用于在 C、C++、Objective-C 中修饰变量、函数、参数、方法、类等。
s_在路上
2019-03-08
5.9K0
浅谈 iOS ARC 内存管理
在 ARC 环境下,id 类型和对象类型和 C 语言其他类型不同,类型前必须加上所有权的修饰符。 所有权修饰符总共有4种:
s_在路上
2019-03-04
1.4K0
九宫格常用的宏
常用九宫格定义的宏如下: /**************************无间距****************************/ /** 设置格子的X坐标 * SUPERVIEW 指九宫格每个小格子的父视图 * WIDTH 指九宫格每个小格子的宽度 int width = (SCREEN_WIDTH - (colunm - 1) * margin) / colunm; * COLUMN 指九宫格的纵向列数 * 注意: MARGIN 和 WIDTH 不能都是 CGFlo
s_在路上
2019-02-25
5320
如何实现LRU缓存淘汰算法
LRU:Least recently used,最近最少使用。缓存算法根据数据最近被访问的情况来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。
s_在路上
2018-12-06
6890
为什么数组都是从0开始编号
为什么数组都是从 0 开始编号,首先先了解一下数组的概念。 数组 Array 是一种线性表数据结构,是一组连续的内存空间,用来存储一组具有相同类型的数据。数组具备以下特性:
s_在路上
2018-12-06
1.1K0
浅谈面向对象的六大原则
核心思想:不要存在多于一个导致类变更的原因,通俗的说,即一个类只负责一个功能。如果一个类里面添加了多个功能,当其中有一个功能发生了变化,就会有多种原因引起这个类的变更,从而导致这个类的维护变得困难。在真实的开发中,不仅仅是类,函数也要遵循单一职责原则。即:一个函数负责一个功能。如果一个函数里面有不同的功能,则需要将不同的功能的函数分离出去。
s_在路上
2018-11-28
5520
浅谈第三方 SDK 和自定义 crash 上报冲突问题
在开发 iOS 应用,解决 Crash 问题始终是一个难题。Crash 分为两种,一种是由 EXC_BAD_ACCESS 引起的,原因是访问了不属于本进程的内存地址,有可能是访问已被释放的内存;另一种是未被捕获的 Objective-C 异常,导致程序向自身发送了 UNIX 信号而崩溃。对于这两种 Crash 的捕获,精准高效的收集线上崩溃可以帮助我们更好的解决问题和提高用户体验,现在比较成熟的崩溃收集工具也比较多,比如:友盟统计,Crashlytics,腾讯的 bugly 等等。也可以通过自定义 crash 上报,来处理异常。
s_在路上
2018-09-30
1.9K0
浅谈 LinkMap 检查每个类占用大小
LinkMap 文件是 Xcode 产生可执行文件的同时生成的链接信息,用来描述可执行文件的构造成分,包括代码段 __TEXT 和数据段 __DATA 的分布情况。只要设置 Project->Build Settings->Write Link Map File 为 YES,并设置 Path to Link Map File,build 完后就可以在设置的路径看到 LinkMap 文件了:
s_在路上
2018-09-30
1.8K0
HTTPS 之原理
HTTPS 在传输数据之前需要客户端与服务端之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL 协议是一套加密传输的协议,使用了非对称加密,对称加密以及 HASH 算法。以浏览器和服务器为例,HTTPS 通信过程如下:
s_在路上
2018-09-30
1.2K0
HTTPS 之对称加密与非对称加密
加密 encryption 与解密 decryption 使用的是同样的密钥 secret key,对称加密是最快速、最简单的一种加密方式。加密和解密算法是公开的,秘钥必须严格保存,如果秘钥泄露,别人就能够用密文+秘钥还原成你的明文。 对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。 对称加密通常使用的是相对较小的密钥,一般小于 256bit。因为密钥越大,加密越强,但加密与解密的过程越慢。如果你只用 1bit 来做这个密钥,那黑客们可以先试着用 0 来解密,不行的话就再用 1 解;但如果你的密钥有 1MB 大,黑客们可能永远也无法破解,但加密和解密的过程要花费很长的时间。
s_在路上
2018-09-30
9230
浅谈 NSTimer 是否精确?
NSTimer 的启动依赖 RunLoop,如果在主线程中做了耗时的操作,当前 RunLoop 持续的时间超过了定时器的间隔时间,那么下一次定时就被延后了。
s_在路上
2018-09-30
5830
iOS 编译过程
iOS 编译采用 Clang 作为编译器前端,LLVM 作为编译器后端,编译器前端负责语法分析,语义分析,生成生成中间码 (LLVM IR),在这个过程中,会进行类型检查,如果发现错误或者警告会标注出来在哪一行;编译器后端会进行机器无关的代码优化,生成机器语言,并且进行机器相关的代码优化。
s_在路上
2018-09-30
1.5K0
iOS 泛型 ObjectType 协变 __covariant 逆变 __contravariant
__covariant(协变):用于泛型数据强转类型,可以向上强转,子类可以转成父类。 __contravariant(逆变):用于泛型数据强转类型,可以向下强转,父类可以转成子类。
s_在路上
2018-09-30
3.5K0
iOS 开发小技巧
在使用view的缩放的时候,layer.border.width随着view的放大,会出现锯齿化的问题,解决这个问题需要设置这个属性。
s_在路上
2018-09-30
7740
浅谈 iOS NSNotification
NSNotificationCenter 就相当于一个广播站,使用 [NSNotificationCenter defaultCenter] 来获取,NSNotificationCenter 实际上是 iOS 程序内部之间的一种消息广播机制,主要为了解决应用程序内部不同对象之间解耦而设计。 NSNotificationCenter 是整个通知机制的关键所在,它管理着监听者的注册和注销,通知的发送和接收。NSNotificationCenter 维护着一个通知的分发表,把所有通知发送者发送的通知,转发给对应的监听者们。每一个 iOS 程序都有一个唯一的通知中心,不必自己去创建一个,它是一个单例,通过 [NSNotificationCenter defaultCenter] 方法获取。 NSNotificationCenter 是基于观察者模式设计的,不能跨应用程序进程通信,当 NSNotificationCenter 接收到消息之后会根据内部的消息转发表,将消息发送给订阅者;它可以向应用任何地方发送和接收通知。 在 NSNotificationCenter 注册观察者,发送者使用通知中心广播时,以 NSNotification 的 name 和 object 来确定需要发送给哪个观察者。为保证观察者能接收到通知,所以应先向通知中心注册观察者,接着再发送通知这样才能在通知中心调度表中查找到相应观察者进行通知。
s_在路上
2018-09-30
1.3K0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档