IOS进阶
文章平均质量分 61
Anber_zhi
IOS手机APP应用开发
展开
-
数据库-FMDatabase的使用
FMDatabase 的使用方法 以下是FMDB的一些基本使用,FMDB框架其实只是一层很薄的封装,主要的类也就两个:FMDatabase和FMResultSet;其中的FMResultSet对象让我想起了android中sqlite的cursor集合啊。FMDB的github地址是,https://github.com/ccgus/fmdb。补充:是导入F转载 2016-04-06 19:04:10 · 1297 阅读 · 0 评论 -
iOS-实现UIScrollview的无限循环滑动(转载自Kenshin Cui's Blog)不过感觉快速滑动还是有缺陷啊
UIScrollView实战前面介绍了iOS中UIKit的一些简单知识,这里我们一起利用前面的知识做一个例子--图片无限循环滚动。在这个例子中我们需要解决如下两个问题:如何无限循环?我们知道在UIScrollView中如果放置其他控件后,只要设置contentSize之后这些图片就可以滚动。如果要让图片无限循环那么只有两种办法,一种是无限循环叠加图片,另一种就是如果最后一张转载 2016-08-31 17:09:20 · 3126 阅读 · 0 评论 -
iOS-GCD学习之Group
今天刚好碰到一个这样的需求,开始想用信号量去搞,最后经过同事的指点,才发现group最适合,记录一下~前面在group子线程去做,最后group汇总起来。如果想在dispatch_queue中所有的任务执行完成后在做某种操作,在串行队列中,可以把该操作放到最后一个任务执行完成后继续,但是在并行队列中怎么做呢。这就有dispatch_group 成组操作。比如 di原创 2016-09-05 18:37:59 · 455 阅读 · 0 评论 -
iOS-GCD学习之同步异步线程去执行串行操作
今天碰到一个需求,在网上找了一下资料,不得不感叹GCD之强大实用。队列:串行队列,并行队列,全局队列,主队列//串行队列 同步执行任务 会在当前线程内执行 # 不一定是主线程//异步的方式 执行串行队列 会创建一个新的线程来执行任务//串行的队列都是按照顺序来执行。就是任务1 -> 任务2 -》任务3[objc] vie原创 2016-09-05 18:42:23 · 3400 阅读 · 0 评论 -
Xcode下的DerivedData文件路径
删除xcode的垃圾文件,如果你很久没有删除xcode的缓存文件,由于你每天要运行新的xcode文件,那么你的硬盘空间会越来越小,位于/Users/jssj/Library/Developer/Xcode/DerivedData下的缓存文件占了很大的内存空间,可以删除;另外,查资料得到,Xcode无提示解决方案就可以删除/Users/用户名/Library/Developer/Xcode/转载 2016-09-19 20:04:00 · 9241 阅读 · 0 评论 -
loadView,viewDidLoad,viewDidUnload
loadView,viewDidLoad,viewDidUnload,这三个函数到底应该怎么用?谷歌一下,全是转载,大概内容是这样:loadView 手动加载viewviewDidLoad用于nib文件加载后,进一步处理viewDidUnload是viewDidLoad的镜像参考官方文档,我给出纠正:一、loadView永远不要主动调用这个函数。view c原创 2016-11-30 17:29:17 · 462 阅读 · 0 评论 -
如何生成.ssh文件以及rsa,添加及修改公钥
1. 生成公钥首先检查本机公钥:$ cd ~/.ssh如果提示:No such file or directory 说明你是第一次使用Git。如果不是第一次使用,请执行下面的操作,清理原有ssh密钥。$ mkdir key_backup$ cp id_rsa* key_backup$ rm id_rsa*生成新的密钥:$ ssh-keygen -t rsa -C原创 2017-01-12 16:31:44 · 8699 阅读 · 0 评论 -
iOS-libxml/HTMLparser.h file not found 解决方法 (libxml.dylib错误处理)
导入了libxml2.dylib,但是却提示libxml/HTMLparser.h file not found,那是因为你的开发环境默认的路径无法找到这个libxml2.dylib框架,修改方法:(两种方法都试一下吧)第一种方法:点击左边项目的根目录,再点击右边的Build Settings,手工输入文字:“Header search paths”,然后单击(或双击,点击弹出面板下面转载 2017-01-18 14:50:22 · 1889 阅读 · 0 评论 -
关于popToViewController用法 (有点疑惑,求助攻!!!)
求小伙伴借个火 popToViewController用法 [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:2] animated:YES];或for (UIViewC原创 2017-01-18 15:02:43 · 1030 阅读 · 0 评论 -
UITabBarController的活用(根据场景隐藏显示TabBar)
UITabBarController的活用,UITabBarController+UINavigationController的架构中会用到。1.隐藏TabBar:[cpp] view plain copy- (void)hideTabBar { if (self.tabBarController.tabBar.hidden原创 2017-03-29 11:09:58 · 970 阅读 · 0 评论 -
数据库-FMDB简单实用
前言FMDB是以OC的方式封装了SQLite的C语言API,使用起来更加面向对象,省去了很多麻烦、冗余的C语言代码;对比苹果自带的Core Data框架,更加轻量级和灵活;提供了多线程安全的数据库操作方法,有效地防止数据混乱;FMDB同时兼容ARC和非ARC工程,在编译的时候会自动根据工程配置来调整相关的内存管理代码。使用方法FMDB有三个主要的类FMDatabas转载 2016-07-16 17:24:57 · 857 阅读 · 0 评论 -
数据库-FMDB误用引起的崩溃问题
FMDB误用引起的,解决后记录一下:值为null的列处理先是通过resultDictionary方法,将ResultSet转换成NSDictionary?1234FMResultSet *rs = [db executeQuery:sql];while([rs next])原创 2016-07-16 17:22:54 · 3886 阅读 · 0 评论 -
IOS设计模式-单例模式
IOS单例模式(Singleton)单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。1.单例模式的要点: 显然单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。2.单例模式的优点: 1.实例控制:Singleton 会阻原创 2016-04-06 19:14:47 · 396 阅读 · 0 评论 -
IOS-dispatch_once和@synchronized的单例区别
dispatch_once和@synchronized的单例模式我们在使用单例的时候往往会使用@synchronized,其实GCD也提供了一种方式。它的优点在于它使用block而非函数指针,这样代码更自然。我们平时使用的初始化往往是这样的+ (id)sharedInstance{ static Instance *obj = nil; @synchron原创 2016-04-06 19:19:56 · 1748 阅读 · 0 评论 -
数据库-FMDatabase在多线程下的使用
在App中保持一个FMDatabaseQueue的实例,并在所有的线程中都只使用这一个实例。[FMDatabaseQueue databaseQueueWithPath:path];1FMDatabaseQueue虽然看似一个队列,实际上它本身并不是,它通过内部创建一个Serial的dispatch_queue_t来处理通过inDatabase和inTransaction传入的Bloc转载 2016-04-07 14:08:32 · 813 阅读 · 0 评论 -
IOS-事务在数据库中的用处
sqlite 是支持事务处理的。如果你知道你要同步删除很多数据,不仿把它们做成一个统一的事务。通常一次 sqlite3_exec 就是一次事务,如果你要删除1万条数据,sqlite就做了1万次:开始新事务->删除一条数据->提交事务->开始新事务->… 的过程。这个操作是很慢的。因为时间都花在了开始事务、提交事务上。你可以把这些同类操作做成一个事务,这样如果操作错误,还能够回滚事务原创 2016-04-07 15:50:13 · 610 阅读 · 0 评论 -
IOS-使用XCODE自带的单元测试UnitTest
什么是单元测试?一听到单元测试这个词感觉很高端,其实单元测试就是为你的方法多专门写一个测试函数。以保证你的方法在不停的修改开发中。保持正确。如果出错,第一时间让你知道,这样从最小单位开始监控来保证软件的质量。什么时候用到单元测试:1、写完代码以后:想要验证一下自己写的代码是否有问题。2、写代码之前:就是写代码之前所有的功能分模块的设计好,测试通过了再写。(我反正是没用过)。3、原创 2016-04-06 19:11:50 · 2579 阅读 · 0 评论 -
IOS-数据存储之NSkeyedArchiver用法
Archiver简单用法:1.用处很大. 但是用起来 比较麻烦.要从程序设计的时候就 把每一个类实现这个功能 .将内存中的 对象实例保存成 binary 到 磁盘 并且可以 逆向这个过程 用来保存 用户操作状态.2.归档操作(NSkeyedArchiver),不同于其他数据存储,它可以把自定义对象存放在文件中。对于一个应用来说,有唯一的沙盒与之对应,即每个应用不能跨沙盒操作原创 2016-04-11 16:54:56 · 1227 阅读 · 0 评论 -
iOS-如何通过UIEdgeInsetsMake来制作可伸缩的Button
注:本文翻译自国外iOS开发者Natasha The Robot的一篇博文,链接在此。在iOS应用中,经常会有很多Button有相同的背景图片,却由于处在不同的位置而大小不同(尽管在iOS7中Button已经没有背景图片了)。比如,一个功能为“Save”的Button要比功能为“Submit”要窄一些,但是他们都可以拥有紫色背景。在这篇文章中,你不需要为每个button准备不同的背景图片。原创 2016-05-27 14:05:11 · 480 阅读 · 0 评论 -
IOS- 开发证书与发布证书申请和安装步骤
对于个人开发者,你需要完成以下几个过程:申请一个Development证书 > 设置你的IPhone手机 > 创建一个App ID > 创建并下载安装一个Development Provisioning Profile。经过这几步,你写的程序就可以跑在自己的手机上了(否则只能在虚拟机里面运行)。然后申请一个Distribution证书 > 创建并安装一个Distribution P转载 2016-05-28 15:09:30 · 1023 阅读 · 0 评论 -
iOS-Git中的fetch和pull的区别
Git中从远程的分支获取最新的版本到本地有这样2个命令:1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge git fetch origin mastergit log -p master..origin/mastergit merge origin/master 以上命令的含义: 首先从远程的origin的mas原创 2016-05-05 09:00:49 · 931 阅读 · 0 评论 -
Dictionary之setValue和setObject的区别(说起来简单,却很容易忽略的知识点)
原文地址:http://blog.csdn.net/itianyi/article/details/8661997 博主写的很细,收藏下^_^!在使用NSMutableDictionary的时候经常会使用setValue forKey与setObject forKey,他们经常是可以交互使用的,代码中经常每一种的使用都有。1,先看看setValue: forKey:的定义转载 2017-06-07 11:38:02 · 1643 阅读 · 0 评论