之前也碰到类似的问题,怎样去管理这些第三方的文件,虽然手动添加也不算麻烦. 写这篇文章主要参考了唐巧的博文,链接如下: http://blog.devtang.com/blog/2012/12/02/use-cocoapod-to-manage-ios-lib-dependency/ 他写的很赞了,但是有些地方还是有疑惑,我在实践的过程中,慢慢摸索了一下,主要做一些补充. CocoaPods项目地址: https://github.com/CocoaPods/CocoaPods $ gem in…
​​iOS开发中,在使用一些第三方库时,可能是一个静态库(比如GPUImage).这种情况下,需要编译出静态库文件(.a) ,然后配合响应的头文件(.h 文件)使用. 编译静态库,直接在Xcode中编译即可,有一个细节需要注意. 平常的开发调试中,我们既可以用模拟器调试,也可以用真机调试.实际上,模拟器和真机的处理器是不同的,这也导致了基于真机的静态库文件不适用于模拟器.倘若只是生成了基于真机的静态库文件,当改为模拟器运行时,会提示类似  .a file was built for archiv…
对iOS开发中内存管理的一点总结与理解   做iOS开发也已经有两年的时间,觉得有必要沉下心去整理一些东西了,特别是一些基础的东西,虽然现在有ARC这种东西,但是我一直也没有去用过,个人觉得对内存操作的理解是衡量一个程序员成熟与否的一个标准.好了,闲话不说,下面进入正题. 众所周知,ObjectiveC的内存管理引用的一种叫做“引用计数“ (Reference Count)的操作方式,简单的理解就是系统为每一个创建出来的对象,(这里要注意,只是对象,NSObject的子类,基本类型没有‘引用计数…
首先需要了解一下iOS中静态库和动态库.framework的概念 静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人看到源码,就需要以库的形式进行封装,只暴露出头文件.另外一种情况是,对于某些不会进行大的改动的代码,我们想减少编译的时间,就可以把它打包成库,因为库是已经编译好的二进制了,编译的时候只需要 Link 一下,不会浪费编译时间. 上面提到…
CocoaPoda在iOS开发中的使用 CocoaPods 简介 CocoaPods是iOS开发中不可避免的依赖管理第三方的工具,能简化一些第三方库文件需要添加编译参数及依赖库的繁复工作 CocoaPods的官网 安装CocoaPods 2.1 FQ版: $ sudo gem install cocoapods $ pod setup 2.1 不FQ版: 更新淘宝的源 $ gem sources --remove https://rubygems.org/ $ gem sources -a ht…
本期 fir.im Weekly 收集了微博上的热转资源,包含 Android.iOS 开发工具.源码等好用的轮子,还有一些 APP 设计的 Tips,希望对你有用. 精仿知乎日报 iOS 端 @我偏笑_NSNirvana花了将近一个月的时间在课余精仿了知乎日报 iOS 端练手,Swift 2.0,注释相当详细,已抛出 Github 源码. iOS开发中的Git流程 @叶孤城___ 写了一篇简明易懂的文章-- <iOS开发中的Git流程>,其中分享了一些最实用的基本命令,举例子讲解了多人开发到…
前言 在iOS开发中,很多公司对项目的版本控制管理都使用了git,当然也有部分公司使用的是svn.当年我最初接触的是svn,觉得使用起来挺方便的,但是每次切分支都需要下载一份新的代码起来,这实在太麻烦了,而且公司的网络下载一个项目的所有资源起来也有数百M,这还用工作么? 当年,第一次听说github的时候,就听说是使用git来管理的,可是那时的我感觉好复杂,不知道如何入手.如今,对git的使用可以说是很熟练了,不管是使用命令操作还是直接使用GUI界面工具操作. 就让我带着还不会使用git的同志,…
前言 断点续传概述 断点续传就是从文件赏赐中断的地方重新开始下载或者上传数据,而不是从头文件开始.当下载大文件的时候,如果没有实现断点续传功能,那么每次出现异常或者用户主动的暂停,都会从头下载,这样很浪费时间有木有.所以呢,项目中实现大文件下载的时候,断点续传功能是必不可少了.当然咯,断点续传有一种特殊的情况,就是我们的应用呗用户kill掉或者应用crash,要实现应用重启之后的断点续传,这种情况就是我们将要解决的问题. 断点续传的原理 要实现断点续传,服务器必须是要支持的.目前最常见的两种方式…
在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIViewalloc] initWithFrame:CGRectMake(0, 0, 0, 0.1)]; self.tableView.tableHeaderView = view; UITableView的plain样式下,取消区头停滞效果 - (void)scrollViewDidScroll:(UIScro…
在iOS开发中,会出现各种各样的问题.今天,就把这些常见的问题以及各位大牛的解决方案汇总下,方便以后查阅: 常见错误: 1. linker command failed with exit code 1 (use -v to see): http://www.reader8.cn/jiaocheng/20131022/2003334.html 2.开发问题 http://blog.sina.com.cn/s/blog_4cd8dd130102uzgp.html http://www.jiansh…
在iOS开发中,其实workspace的使用没有完全发挥出来,最近做了一些研究,也想把之前写过的代码整理下,因为iOS里面的布局方式,交互方式也就那么几种.所以,整理好了之后,更能快捷开发,而且能够形成积累.所以把常用的东西封装成lib文件. 我自己的实施过程如下,同时会穿插一些自己参考的文章的链接或者方法.主要参考链接: http://blog.carbonfive.com/2011/04/04/using-open-source-static-libraries-in-xcode-4/#se…
多线程基本概念 01 进程 进程是指在系统中正在运行的一个应用程序.每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内. 02 线程 2-1 基本概念 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程),线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行. 2-2 线程的串行 1个线程中任务的执行是串行的,如果要在1个线程中执行多个任务,那么只能一个一个地按顺序执行这些任务.也就是说,在同一时间内,1个线程只能执行1个任务. 03 多线程 3-1 基本…
在iOS开发中使用FMDB 前言 SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库.iOS SDK 很早就支持了 SQLite,在使用时,只需要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h 头文件即可.但是,原生的 SQLite API 在使用上相当不友好,在使用时,非常不便.于是,开源社区中就出现了一系列将 SQLite API 进行封装的库,而 FMDB (https://github.com/ccgus/…
前言 小伙伴们在开发中难免会遇到问题, 你是如何解决问题的?不妨也分享给大家!如果此文章其中的任何一条问题对大家有帮助,那么它的存在是有意义的! 反正不管怎样遇到问题就要去解决问题, 在解决问题的同时也是提高开发经验的渠道! 1.既然有问题我们该怎样解决 ? 首先大部分人都会去百度搜索来解决问题, 谁都不例外, 可是百度这东西会有很多误解, 甚至误人子弟, 同时解决问题的效率也不是很高, 如果是技术问题可以去: Google 简单来说比百度搜索的答案相对要多,要更准确效率更高, 建议使用英文搜索…
阅读本文不需要预先掌握 Ruby 与 DSL 相关的知识 何为 DSL DSL(Domain Specific Language) 翻译成中文就是:"领域特定语言".首先,从定义就可以看出,DSL 也是一种编程语言,只不过它主要是用来处理某个特定领域的问题. 广为人知的编程语言有 C.Java.PHP 等,他们被称为 GPL(General Purpose Language),即通用目的语言.与这些语言相比,DSL 相对显得比较神秘,他们中的大多数甚至连一个名字都没有.这主要是因为 D…
ios开发中,展示类应用通常要用到抽屉效果,由于项目需要,本人找到一个demo,缩减掉一些不常用的功能,整理出一个较短的实例. 首先需要给工程添加第三方类库 MMDrawerController: 这里讲的实例只加入了左滑抽屉.右滑和左滑只是初始化时多添加一个右视图控制器,其他方法基本相同. 下面是用手势实现抽屉的拉出和收回 1.初始化跟视图控制器时,在AppDelegate中导入头文件 #import "MMDrawerController.h" 2.初始化方法先初始化左视图和中心视…
来源:伯乐在线 - 夏天然后 链接:http://ios.jobbole.com/89474/ 点击 → 申请加入伯乐在线专栏作者 摘要 本文的目的不是介绍 iOS 中各种锁如何使用,一方面笔者没有大量的实战经验,另一方面这样的文章相当多,比如 iOS中保证线程安全的几种方式与性能对比.iOS 常见知识点(三):Lock.本文也不会详细介绍锁的具体实现原理,这会涉及到太多相关知识,笔者不敢误人子弟. 本文要做的就是简单的分析 iOS 开发中常见的几种锁如何实现,以及优缺点是什么,为什么会有性能上…
我们今天谈谈cocoa程序设计中的 模型-视图-控制器(MVC)范型.我们将从两大方面来讨论MVC: 什么是MVC? M.V.C之间的交流方式是什么样子的? 理解了MVC的概念,对cocoa程序开发是至关重要的. 一.MVC的概念 MVC是Model-VIew-Controller,就是模型-视图-控制器,这些都是什么东西呢? MVC把软件系统分为三个部分:Model,View,Controller.在cocoa中,你的程序中的每一个object(对象)都将明显地仅属于这三部分中的一个,而完全不…
iOS开发中的Html解析方法 本文作者为大家介绍了在iOS开发中的Html解析方法,并同时提供了Demo代码的下载链接,Demo 解析了某个网站(具体可在代码中查看)的html网页,提取了图片以及标题. AD:WOT2015 互联网运维与开发者大会 热销抢票 初次解析html,使用是网上的第三方类:我使用的是以下三个类,将其添加到项目中: #import "TFHpple.h" #import "TFHppleElement.h" #import "XP…
感谢大神分享 这篇文章主要介绍了iOS开发中文件的上传和下载功能的基本实现,并且下载方面讲到了大文件的多线程断点下载,需要的朋友可以参考下 文件的上传 说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代码. 主控制器的关键代码: 复制代码代码如下: YYViewController.m#import "YYViewController.h" #define YYEnc…
本文转载自:唐巧的博客 在iOS开发中使用FMDB APR 22ND, 2012 前言 SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库.iOS SDK很早就支持了SQLite,在使用时,只需要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h 头文件即可.但是,原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,开源社区中就出现了一系列将SQLite API进行封装的库,而FMDB (https…
IOS开发中数据持久化的几种方法--NSUserDefaults IOS 开发中,经常会遇到需要把一些数据保存在本地的情况,那么这个时候我们有以下几种可以选择的方案: 一.使用NSUserDefault是最简单直接的一个办法: 1)保存数据: // 实例化一个NSUserDefaults单例对象 NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; // 把一个数组array保存在key为allContact的键值对里 [us…
每日一篇优秀博文 2017年10月7日 周六 白话 Ruby 与 DSL 以及在 iOS 开发中的运用 阅读本文不需要预先掌握 Ruby 与 DSL 相关的知识 何为 DSL DSL(Domain Specific Language) 翻译成中文就是:“领域特定语言”.首先,从定义就可以看出,DSL 也是一种编程语言,只不过它主要是用来处理某个特定领域的问题. 广为人知的编程语言有 C.Java.PHP 等,他们被称为 GPL(General Purpose Language),即通用目的语言.…
事实上,在iOS开发中,压缩与解压,我都是采用第三方框架SSZipArchive实现的 gitHub地址:   https://github.com/ZipArchive/ZipArchive 上面有详细的使用方法 因为ZipArchive不支持ARC,所以如果你的工程开启了ARC,那么就需要对ZipArchive设置一下.在ZipArchive.mm编译选项中,增加-fno-objc-arc即可. 最后,需要为工程链接libz.dylib动态链接库. 使用示范(压缩): // 获得mainBu…
iOS开发中的Markdown渲染 BearyChat的消息是全面支持Markdown语法的,所以在开发BearyChat的iOS客户端的时候需要处理Markdown的渲染. 主要是两套实现方案: 直接将Markdown文本转换成NSAttributedString. 先将Markdown文本转换成HTML,再将HTML转换成NSAttributedString. 方案1可用的第三方库有:AttributedMarkdown,这个库是基于C语言的peg-markdown的封装,经过试验发现对Gi…
iOS开发中常见的异常包括以下几种NSInvalidArgumentExceptionNSRangeExceptionNSGenericExceptionNSInternallnconsistencyExceptionNSFileHandleOperationException NSInvalidArgumentException非法参数异常是objective-C代码最常出现的错误,所以平时写代码的时候,需要多加注意,加强对参数的检查,避免传入非法参数导致异常,其中尤以nil参数为甚. 1.集…
iOS开发中正则式的使用 第一:常规的使用方式 NSString *str = @"abcded111093212qweqw"; //找到内部一个即可 NSString *pattern = @"\\d{5,11}";//判断是不是QQ // | 匹配多个条件,相当于or\或 NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 erro…
iOS开发中静态库之".framework静态库"的制作及使用篇 .framework静态库支持OC和swift .a静态库如何制作可参照上一篇: iOS开发中静态库之".a静态库"的制作及使用篇 一.OC创建.framework静态库 1.创建工程,语言选择OC 2.进入工程后,会自动帮我们创建一个.h文件,主头文件,和我们项目名称一般完全一致.不要删除了! 3.编写核心代码 依旧使用简单示例,MathTools MathTools.h文件 @interface…
iOS开发中静态库之".a静态库"的制作及使用篇 一.库的简介 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的类型? 根据源代码的公开情况,库可以分为2种类型 开源库 公开源代码,能看到具体实现 如SDWebImage, AFNetworking 闭源库 不公开源代码,是经过编译后的二进制文件,看不到具体实现 主要分为: 静态库,动态库 3.静态库与动态库的区别? 1.静态库和动态库的存在形式上的区别 静态库 .a .framework 动态库 .dylib 在…
在 IOS 开发当中经常碰到 whose view is not in the window hierarchy 的错误,该错误简单的说,是由于 "ViewController" 还没有被加载,就调用该 ViewController 或者 ViewController 内的方法时,就会报这个错误.   在不同地方调用 ViewController,解决的方法也不太一样.     1. 在 一个 ViewController 里面调用另外一个 ViewController 是出现这个错误…