1. iOS 关于Other Linker Flags的作用

    在用第三方库时,我们常常在Xcode的Build Settings下Other Linker Flags里面加入-ObjC标志,它和Objective-C的一个重要特性:类别(category)有关 根据官方的解释,Unix的标准静态库实现和Objective-C的动态特性之间有一些冲突:Objective-C没有为每个函数(或者方法)定义链接符号,它只为每个类创建链接符号。这样当在一个静态库中 …

    代码库 继续阅读

  2. iOS 使用Jenkins持续集成(简称CI)

    安装jenkins1.1. 直接到官网下载安装包,通过安装包安装1.2. 通过Homebrew使用命令行安装1234561. 安装Homebrew$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"2. 安装Jenkins$ brew instal …

    代码库 继续阅读

  3. iOS 插件化开发(动态库研究)

    framework是一种优秀的资源打包方式,我们平时看到的第三方发布的framework大部分都是静态库,苹果对iOS允许使用动态库,但是要利用动态库热更新,由于苹果的审核和签名技术,暂时还是不行,内部使用还是可行的 思路:在用户想使用某个功能的时候让其从服务器上将动态库文件下载到本地,然后手动加载动态库,实现功能的的插件化 创建动态库 1234567891011121314151617 …

    代码库 继续阅读

  4. iOS 唤起APP之Universal Link(通用链接)

    iOS 9之前,一直使用的是URL Schemes技术来从外部对App进行跳转,但是iOS系统中进行URL Schemes跳转的时候如果没有安装App,会提示Cannot open Page的提示,而且当注册有多个scheme相同的时候,目前没有办法区分,但是从iOS 9起可以使用Universal Links技术进行跳转页面,这是一种体验更加完美的解决方案 什么是Universal Lin …

    代码库 继续阅读

  5. iOS 归档缓存

    代码如下: 头文件定义 1234// 归档缓存内容+ (void)archiverObject:(id)object byKey:(NSString *)key withPath:(NSString *)path;// 解归档缓存内容+ (id)unarchiverObjectByKey:(NSString *)key withPath:(NSString *)path; 方法实现 12345 …

    代码库 继续阅读

  6. iOS UIView分类

    .h内容 1234567891011121314151617181920212223- (CGPoint)origin;- (void)setOrigin:(CGPoint)point;- (CGSize)size;- (void)setSize:(CGSize)size;- (CGFloat)x;- (void)setX:(CGFloat)x;- (CGFloat)y;- (void)setY …

    代码库 继续阅读

  7. iOS 发布CocoaPods私有库

    需要做的工作包括以下几点 创建一个本地的仓库,将自己的代码搞进去 将自己的代码上传到远程私有仓库中去 创建一个pods 的描述文件 .podspec 修改.podspec描述文件中的相关的描述信息 创建远程内部私有Spec Repo仓库 向私有的Spec Repo仓库中提交.podspec 在个人项目中的Podfile中增加刚刚制作的好的Pod并使用 后期的升级维护 具体详细的步骤如下 …

    代码库 继续阅读

  8. Mac OS 安装与恢复

    通过 macOS 恢复功能启动要通过 macOS 恢复功能启动,请开启 Mac 并立即按住键盘上的以下组合键之一。通常建议您使用 Command-R-电源键 Command (⌘)-R-电源键安装您的 Mac 上装有的最新 macOS Option-⌘-R-电源键升级到与您的 Mac 兼容的最新 macOS Shift-Option-⌘-R-电源键安装 Mac 随附的 macOS 或与它最接 …

    随笔 继续阅读

  9. iOS 指针详解

    指针数组与数组指针在这里数组指针是指向数组的指针,其本质为指针,指向的对象是数组。由于数组的形式多样所以数组指针的表达也十分多样。同理,指针数组就是存放指针的数组,其本质为数组。由于[ ]的优先级高于*的优先级,指针数组与数组指针的表达可做如下表示:12int * p1 [10];  // 指针数组  p1先与“[ ]”结合构成一个包含10个元素的数组,int*表示的则是数组的内容int (* …

    代码库 继续阅读

  10. iOS KVO

    KVO和NSNotificationCenter都是iOS中观察者模式的一种实现。区别在于,相对于被观察者和观察者之间的关系,KVO是一对一的,而NSNotificationCenter是一对多的。KVO对被监听对象无侵入性,不需要修改其内部代码即可实现监听。 KVO底层实现KVO是基于runtime机制实现的,运用了一个isa-swizzling技术。isa-swizzling就是类型混合指针 …

    代码库 继续阅读