完美修改iOS项目名 注意:重命名项目时,记得先备份好一份1、选中旧项目名,改为新项目名:选择rename:2、修改相关文件夹名称;3、全局搜索旧项目名称,然后替换为新项目名称;4、经过步骤3的替换,再次全局搜索旧项目名,还是能搜到,这时还要修改项目配置中的旧项目名: (1)选中xxx.xcodeproj右键打开 --> 显示包内容...
git仓库迁移 一 .创建一个新的仓库1. git 设置好后,创建自己的空的新项目 第一步:mkdir test 第二步:cd test 第三步:git init 第四步:touch README 第五步:git add README 第六步:git commit -am "first commit" ...
va_start和va_end使用详解 本文主要介绍va_start和va_end的使用及原理。 在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。 介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理:1.在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表void foo(...);void...
iOS开发之Masonry框架源码解析 Masonry是iOS在控件布局中经常使用的一个轻量级框架,Masonry让NSLayoutConstraint使用起来更为简洁。Masonry简化了NSLayoutConstraint的使用方式,让我们可以以链式的方式为我们的控件指定约束。本篇博客的主题不是教你如何去使用Masonry框架的,而是对Masonry框架的源码进行解析,让你明白Masonry是如何对NSLayoutCo...
AFNetworking 3.0 解决加密后请求参数是字符串问题 把整个请求参数的json加密生成一个字符串传给服务器,错误提示:[NSJSONSerialization dataWithJSONObject:options:error:]: Invalid top-level type in JSON write';因为请求参数不是字典、数组、集合...等, AFNetworking自动过滤掉了;解决方案一: 在AFNetwork...
React-native Android环境搭建 基础安装安装HomebrewHomebrew是Mac OSX的包管理器,我们需要通过Homebrew安装开发React Native的相关软件包。 如果不知道怎样安装Homebrew可以点这里:官网。根据官网的介绍安装即可。安装Node.js$ brew install node安装watchmanwatchman是Facebook用于监视JavaScri...
SDWebImage 加载Https自签名证书时的图片问题 你是否遇到了这种情况,好不容易把自签名HTTPS证书配置好了,访问https接口也成功了,但是图片加载不出来?传了SDWebImageAllowInvalidSSLCertificates 还是没效果没效果(这种情况只适用于CA我觉得),并且一直 HTTP load failed (error code: -999 [1:89]),经过不懈努力,终于找到了在不修改SDWebi...
iOS 在cell中使用倒计时的处理方法(新) 一.前言之前的文章iOS 在cell中使用倒计时的处理方法得到大量的支持, 在这先感谢大家的支持. 但是也收到不少人的回复表示不会用, 需要一一解答, 由于之前写的时候没有使用Markdown编辑, 所以现在没法更新之前的文章, 重新写一份清晰的文章需求: 每条Cell中显示倒计时, 并随时间进行倒数语言: Objective-C & Swift系统: iOS...
iOS开发针对对Masonry下的FPS优化讨论 今天博客的内容就系统的讨论一下Masonry对FSP的影响,以及如何更好的使用Masonry。如果你对iOS开发足够熟悉的话,那么对Masonry框架应该不陌生。简单的说,Masonry的诞生让AutoLayout的使用更为优雅,让控件的布局更为方便。使用辩证的观点来看一个事物的话,凡事都有两面性,Masonry的使用也不例外。Masonry框架的使用不当会直接影响当UI的FPS。今天我...
iOS应用架构谈 本地持久化方案及动态部署 iOS应用架构谈 开篇iOS应用架构谈 view层的组织和调用方案iOS应用架构谈 网络层设计方案iOS应用架构谈 本地持久化方案及动态部署iOS应用架构谈 组件化方案前言嗯,你们要的大招。跟着这篇文章一起也发布了CTPersistance和CTJSBridge这两个库,希望大家在实际使用的时候如果遇到问题,就给我提issue或者PR或者评论区。每一个issue...
iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 开篇iOS应用架构谈 view层的组织和调用方案iOS应用架构谈 网络层设计方案iOS应用架构谈 本地持久化方案及动态部署iOS应用架构谈 组件化方案前言《iOS应用架构谈 开篇》出来之后,很多人来催我赶紧出第二篇。这一篇文章出得相当艰难,因为公司里的破事儿特别多,我自己又有点私事儿,以至于能用来写博客的时间不够充分。现在好啦,第二篇出来了...
iOS应用架构谈 组件化方案 iOS应用架构谈 开篇iOS应用架构谈 view层的组织和调用方案iOS应用架构谈 网络层设计方案iOS应用架构谈 本地持久化方案及动态部署iOS应用架构谈 组件化方案简述前几天的一个晚上在infoQ的微信群里,来自蘑菇街的Limboy做了一个分享,讲了蘑菇街的组件化之路。我不认为这条组件化之路蘑菇街走对了。分享后我私聊了Limboy,Limboy似乎也明白了问...
iOS应用架构谈 开篇 iOS应用架构谈 开篇iOS应用架构谈 view层的组织和调用方案iOS应用架构谈 网络层设计方案iOS应用架构谈 本地持久化方案及动态部署iOS应用架构谈 组件化方案缘由之前安居客iOS app的第二版架构大部分内容是我做的,期间有总结了一些经验。在将近一年之后,前同事zzz在微信朋友圈上发了一个问题:假如问你一个iOS or Android app的架构,你...
iOS应用架构谈 网络层设计方案 iOS应用架构谈 开篇iOS应用架构谈 view层的组织和调用方案iOS应用架构谈 网络层设计方案iOS应用架构谈 本地持久化方案及动态部署iOS应用架构谈 组件化方案前言网络层在一个App中也是一个不可缺少的部分,工程师们在网络层能够发挥的空间也比较大。另外,苹果对网络请求部分已经做了很好的封装,业界的AFNetworking也被广泛使用。其它的ASIHttp...
多个网络请求并发执行、顺序执行 我们在开发中可能会遇到多个网络请求的需求,比如一个界面有两个请求,tableView的数据源及表头,需要等两个请求都完成才刷新UI,或者第二个的网络请求依赖第一个网络请求返回的数据,今天主要讲下两种方式的实现方式,当然也有其他方式,主要记录下我工作中使用的并发执行多个网络请求同时执行,等所有网络请求完成,再统一做其他操作,你可能会想到dispatch_group_async、...
关于dispatch_semaphore的使用 dispatch_semaphore是GCD用来同步的一种方式,与他相关的共有三个函数,分别是dispatch_semaphore_create,dispatch_semaphore_signal,dispatch_semaphore_wait。下面我们逐一介绍三个函数:(1)dispatch_semaphore_create的声明为: dispatch_semaphore_t...
UITableViewCell高度自适应的关键点 iOS开发中对于UITableViewCell高度自适应的文章已经很多很多,但如果cell内容比较复杂,刚使用autolayout配置自使用时还是总不能一次性成功。KEY POINT这里只说设置的关键一点:Cell内部的Constraints一定要有一条从Cell顶部到底部的一条可联通线。图例列表: Paste_Image.png...
SVN命令使用详解 1、检出svncohttp://路径(目录或文件的全路径) [本地目录全路径]--username 用户名 --password 密码svncosvn://路径(目录或文件的全路径) [本地目录全路径]--username 用户名 --password 密码svncheckouthttp://路径(目录或文件的全路径) [本地目录全路径] --us...
iOS中成员变量和属性区别 历史由来:接触iOS的人都知道,@property声明的属性默认会生成一个_类型的成员变量,同时也会生成setter/getter方法。但这只是在iOS5之后,苹果推出的一个新机制。看老代码时,经常看到一个大括号里面定义了成员变量,同时用了@property声明,而且还在@implementation中使用@synthesize方法。如下:Demo 1 @interf...
runtime-分类为什么不生成setter和getter 前言前几天有人问我一个问题:为什么分类不能自动创建get set方法。老实说,笔者从来没有去思考过这个问题。于是这次通过代码实践跟runtime源码来探究这个问题。准备工作为了能减少输出类数据的代码工作,笔者基于NSObject的分类封装了一套代码 其中输出类实例变量的具体代码:- (void)logIvarsWithExpReg: (N...