iOS
文章平均质量分 91
zhangping871
这个作者很懒,什么都没留下…
展开
-
关于字符编码 GB2312,UTF-8,GBK,BIG5
关于字符编码 GB2312,UTF-8,GBK,BIG5 你是否对字符编码的问题还是不了解,是否遇到过文件乱码的问题呢,看到 ANSI,GB2312,GBK,latin-1,cp936,euc-cn,GB18030,big5。这么多的会不会头晕呢?先看一个很早看到的一个奇怪现象:在 Windows 的记事本里新建一个文本文件,输入 "联通" 两个字,保存,关闭,再次打开,会发现文本已经不是转载 2017-03-20 22:40:17 · 679 阅读 · 0 评论 -
Ios 6和ios7的适配
Ios 6和ios7的适配1.普通的 ViewController:让view的显示从状态栏下面开始,只需在viewDidLayoutSubviews调整 view的bounds CGRect bounds = self.view.bounds; bounds.origin.y = - [self.topLayoutGuide length];self.view.原创 2015-04-28 10:12:55 · 767 阅读 · 0 评论 -
ios xcode svn
* 源代码管理工具的作用:# 能追踪一个项目从诞生一直到定案的过程# 记录一个项目的所有内容变化# 方便地查阅特定版本的修订情况* 如果是团队开发,使用源代码管理工具是强制性的!* 如果是单人开发,也强烈建议现在就开始使用源代码管理工具* 使用源代码管理工具# 由于使用简单,不会增加工作量# 不会对现有工作造成任何损害(坏的影响)# 是一位合格的原创 2015-04-27 21:39:53 · 621 阅读 · 0 评论 -
ios xocde git使用
02. GIT命令行帮助================================================================================$ svn help查看svn所有命令的帮助$ svn help 子命令# 要退出帮助信息,按"q"# 翻看下页,按"空格"# 翻看上页,按"CTRL+B"# 要搜索相关文字,原创 2015-04-27 21:30:10 · 974 阅读 · 0 评论 -
Xcode高级调试技巧
1.Static Analyzer(静态分析) Static Analyzer是一个非常好的工具, 它可以帮助我们发现编译器警告不会提示的问题。 Static Analysis 优点: 1、使用操作容易。 2、能够在编码阶段,开发自行进行代码检查。早期发现代码隐患。 3、直接分析源代码来发现程序中的错误,而不需要实际运行。 4、自动检测objective-C程序原创 2015-04-27 22:14:02 · 1636 阅读 · 0 评论 -
Objective-c中对象的Copy、MutableCopy、浅拷贝、深拷贝
对象的复制就是复制一个对象作为副本,他会开辟一块新的内存(堆内存)来存储副本对象,就像复制文件一样,即源对象和副本对象是两块不同的内存区域。对象要具备复制功能,必须实现协议或者协议,常用的可复制对象有:NSNumber、NSString、NSMutableString、NSArray、NSMutableArray、NSDictionary、NSMutableDictionarycopy:产原创 2015-04-16 16:35:29 · 679 阅读 · 0 评论 -
iOS 开发ui适配iphone6 iphone 6plus
着苹果发布两种新尺寸的大屏iPhone 6,iOS平台尺寸适配问题终于还是来了,移动设计全面进入“杂屏”时代。所以如何做到交付一套设计稿解决适配大中小三屏的问题?设计和开发之间采用什么协作模式?一个基本思路是:1、选择一种尺寸作为设计和开发基准;2、定义一套适配规则,自动适配剩下两种尺寸;3、特殊适配效果给出设计效果。当面对大中小三种屏幕需要适配的时候,原创 2015-04-07 16:46:17 · 1165 阅读 · 0 评论 -
UIView的layoutSubviews和drawRect方法何时调用
首先两个方法都是异步执行。layoutSubviews方便数据计算,drawRect方便视图重绘。 layoutSubviews在以下情况下会被调用: 1、init初始化不会触发layoutSubviews。2、addSubview会触发layoutSubviews。3、设置view的Frame会触发layoutSubviews,当然前提是原创 2015-04-22 09:37:43 · 788 阅读 · 0 评论 -
iPhone屏幕知识点解析
SEP 28TH, 2014一、屏幕相关知识点1、屏幕尺寸在显示器世界里,屏幕尺寸都是由屏幕对角线长度表示的,单位是英寸。比如iPhone4的3.5寸屏就意味着屏幕对角线的长度是3.5英寸。2、分辨率分辨率是任何一款手机产品最重要的参数之一。显示屏是由一个个像素组成的,分辨率可以简单理解成屏幕像素的数目。比如iPhone4的屏幕分辨率为640×9原创 2015-04-02 15:32:34 · 1410 阅读 · 0 评论 -
oc 可变参数传递
- (id)initWithFrame:(CGRect)frame delegate:(id)delegate focusImageItems:(SGFocusImageItem *)firstItem, ...{ self = [super initWithFrame:frame]; if (self) { NSMutableArray *imageItems原创 2015-03-18 18:28:05 · 2191 阅读 · 0 评论 -
ios 应用多语言自由切换实现
第一次进入应用获取本机语言.1.如果本机语言在软件实现语言列表里.则默认选中本机语言,但是用户还是可以选择其它语言.2.如果本机语言不在软件实现语言列表里,则默认选中英语.用户还是可以选择其它语言./** 初始化语言 */- (void)initLanguage{ //1. 获取系统支持的语言 _languages = [NSMutableA原创 2015-03-13 17:01:48 · 1132 阅读 · 2 评论 -
lldb 命令使用
“po”命令是“print object”(打印对象)的简写。“$eax”是cup的一个寄存器。在一个异常的情况下,这个寄存器将会包含一个异常对象的指针。注意:$eax只会在模拟器里面工作,假如你在设备上调试,你将需要使用”$r0″寄存器。例如,假如你输入:(lldb) po [$eax class]你将会看像这样的东西:(id) $2 = 0x01446e84 NSExc原创 2015-03-31 11:41:34 · 1657 阅读 · 0 评论 -
ios autolayout debug调试技巧
这篇文章并没有具体介绍自动布局的一些基本概念,主要讲解了一些高级的调试技巧。这篇文章不是用来介绍Auto Layout的。如果你还没用过它,那还是先去WWDC 2012看看基础教程吧(1,2,3)。如果我们在iOS中遇到不可满足的约束条件,我们只能在输出的日志中看到视图的内存地址。尤其是在更复杂的布局中,有时很难辨别出视图的哪一部分出了问题。然而,在这种情况下,还有几种方法原创 2015-03-31 11:16:41 · 2374 阅读 · 0 评论 -
模拟UIView的hitTest:方法和pointInside:方法的实现
对于UIView 的两个方法的讲解:- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event网上对这两个方法的讲解很多,但是大部分是纯文字的描述,我不再赘述,需要可以自己百度“UIView hitTest”原创 2015-03-30 22:29:50 · 1276 阅读 · 0 评论 -
hibou 主界面自定义侧滑
给要侧滑的View添加UIPanGestureRecognizer#pragma mark 手势识别器回调方法- (void)dragView:(UIPanGestureRecognizer *)gesture{ switch (gesture.state) { caseUIGestureRecognizerStateBegan:原创 2015-03-13 18:35:53 · 703 阅读 · 0 评论 -
ios runtime swizzle
Objective-C的hook方案(一): Method Swizzling在没有一个类的实现源码的情况下,想改变其中一个方法的实现,除了继承它重写、和借助类别重名方法暴力抢先之外,还有更加灵活的方法吗?在Objective-C编程中,如何实现hook呢?标题有点大,计划分几篇来总结。本文主要介绍针对selector的hook,主角被标题剧透了———— Method Swizzling 。原创 2015-03-29 21:25:01 · 871 阅读 · 0 评论 -
UINavigationController 的生命周期
原创 2015-03-10 18:32:43 · 944 阅读 · 0 评论 -
速递花新特性界面滑动一段后scrollView才滚动的 实现方法
1.让 scrollView不可以根据用户手指滚动self.scrollView.scrollEnabled =NO;2.给 scrollView添加手势 UIGestureRecognizer *gesture = [[UIPanGestureRecognizeralloc] initWithTarget:selfaction:@sele原创 2015-03-11 11:38:02 · 817 阅读 · 0 评论 -
weakself的一种写法
在不久前看AFNetworking的源码时候发现了这么一句:12345678910// 不知道这行代码的使用场景的同学你该去自习看看ARC的注意事项和Block的使用了// AFNetworking的写法__weak __typeof(&*self)weakSelf = self;// 我之前一直这么写的__weak __typeof原创 2015-04-28 17:15:54 · 1497 阅读 · 0 评论 -
iOS 检测版本更新
如果我们要检测app版本的更新,那么我们必须获取当前运行app版本的版本信息和appstore 上发布的最新版本的信息。当前运行版本信息可以通过info.plist文件中的bundle version中获取:[cpp] view plaincopyNSDictionary *infoDic = [[NSBundle原创 2015-04-28 15:18:54 · 797 阅读 · 0 评论 -
深入理解BufferedInputStream实现原理
通过分析FileInputStream类和BufferedInputStream类中的部分核心代码来理解带缓冲的字节输入流的实现原理,缓冲输出流原理与之相同,在此不再赘述。FileInputStream源码[java] view plain copy package java.io; public class FileInput原创 2017-01-04 10:38:57 · 11133 阅读 · 12 评论 -
分享-学习网站
游戏开发相关: http://www.gameres.com/ 想学游戏的这个网站绝对不能错过,个人感觉挺不错的http://xyq.baike.163.com/ziliao/ SLG 游戏系统策划http://www.gamedev.net/page/index.html 国外http://ns.codingnow.com/ 网易梦幻西游后端主程原创 2015-04-16 14:23:24 · 665 阅读 · 0 评论 -
iOS全局log开关
当我们新建一个工程的时候,在Supporting FIles文件下会看到一个以 -Prefix.pch结尾文件的文件,pch全称是“precompiled header”,也就是预编译头文件,该文件里存放的工程中一些不常被修改的代码,比如常用的框架头文件,这样做的目的提高编译器编译速度。我们知道当我们修改一个工程中某个文件代码时候,编译器并不是重新编译所有所有文件,而是编译改动过文件的,假如pc原创 2014-10-20 17:15:20 · 3394 阅读 · 0 评论 -
iOS7,iOS8,iOS9适配
1.iOS8新增框架:1.HealthKit2.HomeKit3.CloudKit4.WebKit2.Size Classes:将屏幕分类(配合autolayout使用)3.UIAlertController:替代了 UIAlertView和UIActionSheet4.App Extensions 是iOS8新开放的一种对几个固定系统区域的扩展机制,它可以在一定程度上原创 2015-11-15 18:36:28 · 969 阅读 · 0 评论 -
使用Jenkins搭建iOS开发的CI服务器
http://www.th7.cn/Program/IOS/201406/214010.shtml目录 简介 下载并运行 Jenkins配置 安装git插件 E-mail设置 自动化构建 远程仓库设置 触发条件设置 编译设原创 2015-06-14 17:18:51 · 588 阅读 · 0 评论 -
一个国外的ios学习网站
http://tutsplus.com/tutorials/search?utf8=%E2%9C%93&search%5Btopic%5D=&search%5Bterms%5D=Building+a+Jabber+Client+for+iOS&button=原创 2015-06-15 22:58:04 · 447 阅读 · 0 评论 -
Protocol Buffers for Object-C
一、先点击链接去了解一下,或者 google一下http://code.google.com/intl/zh-CN/apis/protocolbuffers/二、protobuf的使用1、编译Protocol Buffers A.下载Protocol Buffers将下载解压后的文件存放至Applications目录下,进到ProtocolBuffers-2.2.原创 2015-05-24 14:35:42 · 494 阅读 · 0 评论 -
NSURLSessionDownloadTask 断点下载
#import "ViewController.h"#import "ASIHTTPRequest.h"#import @interface ViewController () NSURLSessionDownloadDelegate>@property (strong, nonatomic) NSURLSessionDownloadTask *resumabl原创 2015-06-07 21:25:35 · 1651 阅读 · 0 评论 -
使用Jenkins搭建iOS开发的CI服务器
简介 下载并运行 Jenkins配置 安装git插件 E-mail设置 自动化构建 远程仓库设置 触发条件设置 编译设置 编译后行为设置 单元测试 最后简介持续集成CI(continuous in原创 2015-05-19 21:35:47 · 1342 阅读 · 0 评论 -
使用Jenkins+Calabash+Cocoapods搭建iOS持续集成环境
持续集成持续集成究竟是什么呢?根据敏捷大师Martin Fowler的定义:持续集成是一种软件开发实践。在持续集成中,团队成员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以多次。每次集成会经过自动构建(包括自动测试)的检验,以尽快发现集成错误。许多团队发现这种方法可以显著减少集成引起的问题,并可以加快团队合作软件开发的速度。只要是开发就有分工,哪怕是自己一个写也要原创 2015-05-19 21:41:16 · 897 阅读 · 0 评论 -
github优秀开源项目大全-iOS
前言本文旨在搜集github上优秀的开源项目本文搜集的项目都是用于iOS开发本文会持续更新…完整客户端ioctocatgithub的iOS客户端,目前开源代码是V1版本,V2版本在appstore上可以下载ChatSecure-iOS使用XMPP协议的IM开源软件,很强大,在appstore上可以下载转载 2015-06-02 21:42:56 · 784 阅读 · 0 评论 -
CoreData 多线程下NSManagedObjectContext的使用
在Google的时候,我发现了这样两篇老外的博客(,)。前者是介绍NSManagedObjectContext在多线程下的三种设计,后者是博主对这三种设计进行的性能测试。下面我将一一介绍:1. persistentStoreCoordinator 这种设计就是我之前在项目中使用的,也是阻塞UI线程最严重的一种设计。它总共有两个Context,一个是UI线程中使用的mainCo原创 2015-05-18 20:26:47 · 1000 阅读 · 0 评论 -
objective-c runtime安全措施之二:反注入
《O'Reilly.Hacking.and.Securing.iOS.Applications>>读书笔记反注入:在类函数被调用前做完整性检测(预防应用自定义函数或apple标准库函数被修改或替换)原理:调用dladdr()函数检查类方法的基本信息是否合法例子1:检查Foundation框架类中NSMutableURLRequest基类(用于改变URL请求)的setHTTPBody方法转载 2015-05-31 22:44:48 · 1864 阅读 · 2 评论 -
iOS开发之runtime的运用-获取当前网络状态
之前写过runtime的一些东西,这次通过runtime获取一些苹果官方不想让你拿到的东西,比如,状态栏内部的控件属性。本文将通过runtime带你一步步拿到状态栏中显示网络状态的控件,然后通过监测该控件的属性来获取当前精确网络状态,比如2G/3G/4G/WIFI。首先,我们需要拿到状态栏,然后通过runtime去探讨状态栏内部的组成结构。1、导入运行时头文件#import转载 2015-05-31 21:56:00 · 518 阅读 · 0 评论 -
仿iOS猎豹垃圾清理(实现原理+源码)
转载请注明出处:仿猎豹垃圾清理(实现原理+源码)前几天无意打开猎豹内存大师, 发现它的垃圾清理很强大, 效果也不错,闲着就研究了下。 不过.. 结果貌似和我想象的不太一样。怎么说呢,听我下文一一分析。效果图:\\从效果图, 我们可以看出它有以下几个功能:获取设备上已安装的所有App获取App的信息, 包括图标和转载 2015-05-31 22:03:59 · 1955 阅读 · 0 评论 -
iOS Reveal及简单破解方法
Reveal作为分析APP UI的利器确实非常好用,用来查看任意UI布局也很方便一.模拟器进行分析 1.打开Reveal(http://revealapp.com下载) 2.打开Xcode 3.Reveal——Help——Show Reveal Library in Finder 4.Xcode——导入Reveal.framewo原创 2015-04-28 17:34:33 · 1056 阅读 · 0 评论 -
xcode 快捷键
原创 2015-04-28 17:43:21 · 577 阅读 · 0 评论 -
ios 将任意对象存进数据库
要将一个对象存进数据库的blob字段,最好先转为NSData,一个对象要遵守NSCoding协议,实现协议中相应的方法,才能转成NSData。NSData *statusData = [NSKeyedArchiver archivedDataWithRootObject:obj];[_db executeUpdateWithFormat:@"INSERT INTO t_a(a, ids原创 2015-03-17 09:48:59 · 2097 阅读 · 0 评论 -
几款iOS开发常用工具
ImageOptim – 另一个Mac应用,可以压缩PNG图片来节省空间。大多数PNG文件可以省掉几个百分点的大小,有时甚至30%或更多。图片更小意味着应用尺寸更小,运行时加载它们所使用的内存也更小。Prepo – 一个Mac上的小应用,可以将图片快速变换为你需要的多个尺寸。只需要拖动一个大图标文件(比如,1024*1024)到Prepo,它就会生成512*512的iTunesArtwork,11原创 2015-03-06 16:34:13 · 1310 阅读 · 0 评论 -
UIView 生命周期方法
1、添加视图 insertSubview:atIndex: //放在子视图数组的具体索引位置 insertSubview:aboveSubview: //某个子视图前面 insertSubview:aboveSubview: //某个子视图前面2、重新排序和删除子视图 [parentView exchangeSu原创 2014-11-20 15:20:42 · 2166 阅读 · 0 评论