- 博客(49)
- 收藏
- 关注
原创 iOS开源项目之日志框架CocoaLumberjack
iOS开源项目之日志框架CocoaLumberjackCocoaLumberjack是Mac和iOS上一个集快捷、简单、强大和灵活于一身的日志框架。CocoaLumberjack类似于流行的日志框架(如log4j),但它是专为Objective-C设计的,利用了多线程、GCD(如果可用)、无锁原Co
2014-12-05 11:18:59
1044
转载 iOS工程如何支持64-bit
iOS工程如何支持64-bit苹果在2014年10月20号发布了一条消息:从明年的二月一号开始,提交到App Store的应用必须支持64-bit。详细消息地址为:https://developer.apple.com/news/?id=10202014a那们我们应该如何开始着手让自己的App支持64-Bit呢?基本知识从iPhone 5
2014-12-02 15:41:34
523
原创 XCode下的iOS单元测试
XCode下的iOS单元测试XCode 内置了 OCUnit 单元测试框架,但目前最好用的测试框架应该是 GHUnit。通过 GHUnit + OCMock 组合,我们可以在 iOS 下进行较强大的单元测试功能。本文将演示如何在 XCode 4.2 下使用 OCUnit, GHUnit 和
2014-12-02 10:08:53
674
原创 ios 第三方库
知名应用程序的设计和技术一直都是开发者需要学习的,同样这些应用所使用的开源框架也是不可忽视的一部分。此前《iOS第三方开源库的吐槽和备忘》中作者ibireme列举了国内多款知名应用所使用的开源框架,并对其中一些框架进行了分析,同样国外开发者@iOSCowboy也在博客中给我们列出了国外多款知名应用使用的开源框架。另外txx's blog中详细介绍了Facebook Paper使用的第三方库。
2014-11-05 11:29:24
648
原创 iOS开发之深入浅出 (7) — ARC总结
通过前面几篇文章的介绍,我想大家应该对ARC有了一个比较完整的理解。最后,我们来对ARC做一个总结,并把一些未涉及到的细节部分再深入讨论一下。内存管理基本原则内存管理的依循下面的基本原则自己生成的对象,那么既是其持有者不是自己生成的对象,也可成为其持有者(一个对象可以被多个人持有)如果不想持有对象的时候,必须释放其所有权不能释放已不再持有所有权的对象不管ARC有没有效,
2014-11-04 09:53:39
504
原创 ios开发之深入浅出 (6) — ARC之对象转型
ios开发之深入浅出 (6) — ARC之对象转型 自 Xcode4.2 开始导入ARC机制后,为了支持对象间的转型,Apple又增加了许多转型用的关键字。这一讲我们就来了解其用法,以及产生的理由。引子我们先来看一下ARC无效的时候,我们写id类型转void*类型的写法: id obj = [[NSObject alloc] init]; void *p =
2014-11-04 09:47:47
510
原创 ios开发之深入浅出 (5) — ARC之Outlet与弱引用
使用weak property声明Outlet当我们使用 Interface Builder 生成Outlet对象的时候,一般都是作为 subview 来使用的。比如 UIViewController 的view。所以说Outlet的持有者就是superview对象,即有“父子”关系。由上一回 iPhone开发之深入浅出 (4) — ARC之循环参照 我们知道,当对象间有“父子
2014-11-04 09:45:19
453
原创 ios开发之深入浅出 (4) — ARC之循环参照
概念当我们使用强参照(Strong reference)时,往往需要留意 循环参照 的问题。循环参照指的是两个对象被互相强参照,以至于任一对象都不能释放。一般情况下,当对象之间有“父子关系”时,强参照的情况发生的比较多。比如通讯薄对象AddrBook和每个通讯录Entry的关系如下。这种情况下,由于Entry对象被AddrBook强参
2014-11-04 09:40:32
567
原创 ios开发之深入浅出 (3) — ARC之前世今生
ios开发之深入浅出 (3) — ARC之前世今生 前两节我们对 ARC(Automatic Reference Counting) 有了一个基本的理解,但是 ARC 是怎么产生的,为什么苹果要在其最新的 iOS/Mac OS X 上导入该框架? 如果不理解其背后的基本原理,只是死记硬背那些规则/方法,是毫无意义的。就像我们从小接受的填鸭式教育,基本上到后来都还给老师了。
2014-11-04 09:18:13
521
原创 ios开发之深入浅出 (2) — ARC之@property使用
上一回我们学到了一些ARC的基本概念,这一次我们来看看ARC对@property的使用规则有何影响。所有者属性我们先来看看与所有权有关系的属性,关键字间的对应关系。属性值关键字所有权strong__strong有weak__weak无unsafe_unretained__unsafe_u
2014-11-04 09:15:48
459
原创 ios开发之深入浅出 (1) — ARC是什么
ios开发之深入浅出 (1) — ARC是什么 ARC是什么ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。该机能在 iOS 5/ Mac OS X 10.7 开
2014-11-04 08:58:23
535
原创 20个iOS开源项目
摘要:iOS每一次的改变,总会引发iOS开源项目的演变,从iOS 1.x到如今的iOS 7,有的项目已被弃用,有的则继续发扬光大,新项目更是层出不穷。在本文中,我们将继续为大家介绍20个在GitHub上深受开发者欢迎的iOS开源项目。介绍40个在GitHub上非常受开发者欢迎的iOS开源项目,你准备好了吗?1. AFNetworking在众多iOS开源项目中
2014-11-02 11:37:20
891
原创 XMPP 简介
本小节将简要介绍 XMPP,它的起源,以及为何它是一个适合实时 web 通信的协议。您将检查 XMPP 通信设置的组件,并查看展示这些组件如何使用的示例。Web 标准和 XMPPXMPP 是一组基于 XML 的技术,用于实时应用程序。最初,XMPP 作为一个框架开发,目标是支持企业环境内的即时消息传递和联机状态应用程序。当时的即时消息传递网络是私有的,非常不适合企业使用。例如,AOL In
2014-11-02 11:29:42
2032
原创 iOS Quartz 各种绘制图形用法--画图片、写文字、画线、椭圆、矩形、棱形等
- (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); /*NO.1画一条线 CGContextSetRGBStrokeColor(context, 0.5, 0.5, 0.5, 0.5);/
2014-11-02 11:19:47
719
原创 ASI详解
ASIHTTPRequest对CFNetwork API进行了封装,并且使用起来非常简单,用Objective-C编写,可以很好的应用在Mac OS X系统和iOS平台的应用程序中。ASIHTTPRequest适用于基本的HTTP请求,和基于REST的服务之间的交互。 ASIHTTPRequest功能很强大,主要特色如下:l 通过简单的接口,即可完成向服务端提交数据和从服务端获取数据的
2014-11-02 11:15:25
1191
原创 iOS常用目录整理说明
iOS常用目录整理说明是本文要介绍的内容,虽然不同API全面,也算是在编程中常用到的存放目录,所以是必备文档,不多说,来看详细内容讲解。1、【/Applications】常用软件的安装目录 内建软体及JB软体存放位置2. 【/private /var/ mobile/Media /iphone video Recorder】录像文件存放目录3、【/priva
2014-06-23 12:34:09
891
原创 ARC实战中的具体应用
ARC是一个编译器特征,它提供了对OC对象自动管理内存。ARC让开发者专注于感兴趣的代码和对象的关系,而不用考虑对象的retain和release。转自hherima的博客原文:Transitioning to ARC Release Notes(苹果官方文档) ARC是一个编译器特征,它提供了对OC对象自动管理内存。ARC让开发者专注于感兴趣的代码和对象的
2014-06-05 11:04:20
851
原创 苹果Swift编程语言入门教程【中文版】4
7 枚举与结构 使用 enum 来创建枚举。有如类和其他命名类型,枚举可以有方法。 enum Rank: Int { case Ace = 1 case Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten case Jack, Queen, King func simpleDescri
2014-06-04 15:30:41
797
原创 苹果Swift编程语言入门教程【中文版】3
6 对象与类 使用 class 可以创建一个类。一个属性的声明则是在类里作为常量或变量声明的,除了是在类的上下文中。方法和函数也是这么写的。 class Shape { var numberOfSides = 0 func simpleDescription() -> String { return "A shape with \(numberOfSides
2014-06-04 15:26:50
1005
原创 苹果Swift编程语言入门教程【中文版】2
5 函数与闭包 使用 func 声明一个函数。调用函数使用他的名字加上小括号中的参数列表。使用 -> 分隔参数的名字和返回值类型。 func greet(name: String, day: String) -> String { return "Hello \(name), today is \(day)." } greet(
2014-06-04 15:25:09
1072
原创 苹果Swift编程语言入门教程【中文版】
目录 1 简介 2 Swift入门 3 简单值 4 控制流 5 函数与闭包 6 对象与类 7 枚举与结构 1 简介 Swift是供iOS和OS X应用编程的新编程语言,基于C和Objective-C,而却没有C的一些兼容约束。Swift采用了安全的编程模式和添加现代的功能来是的编
2014-06-04 15:21:10
1517
原创 CGRectInset和CGRectOffset 意思 和 区别
1、CGRectInsetCGRect CGRectInset ( CGRect rect, CGFloat dx, CGFloat dy);该结构体的应用是以原rect为中心,再参考dx,dy,进行缩放或者放大。CGRectInset 该结构体的应用" height="223" width="237" style="margin:0px;
2014-05-26 21:53:40
2224
原创 IOS 画图 画线
创建UIView子类 Add -> New File.UIView ,起名为2DView,然后到ViewController.xib中修改view的类名称为刚才创建的2DView. 覆写drawRect方法1. 画线1) CGContextRef context = UIGraphicsGetCurrentContext();//获得当前vie
2014-05-26 21:38:46
1102
原创 IOS 开发技巧
1、获取全局的Delegate对象,这样我们可以调用这个对象里的方法和变量:[(MyAppDelegate*)[[UIApplication sharedApplication] delegate] MyMethodOrMyVariable]; 2、获得程序的主Bundle:NSBundle *bundle = [NSBundle mainBundle]; Bundle可以
2014-04-18 19:40:51
575
原创 Push的原理
Push的原理: Push 的工作机制可以简单的概括为下图 图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider。 APNS 是Apple Push Notification Service(Apple Push服务器)的缩写,是苹果的服务器。 上图可以分为三个阶段。 第一阶段:.net应用程序把要发送的消息、目
2014-04-16 15:59:36
1062
原创 推送详解
摘要:这是一篇编译的文章(因为我很少亲自写纯翻译的文章),内容及乳品均出自 Parse.com的iOS开发教程 ,同时作者还提供了 视频讲解 ,愿意联系听力的开发者可以去看看( 别跟我说视频看不了 )。本文将带领开发者一步一步向着iOS推送通知的深处探寻,掌握如何配置iOS推送通知的奥义。 介绍一点点背景资...这是一篇编译的文章,内容均出自Parse.com的iOS开发教程,同时作者
2014-04-14 12:22:47
796
原创 转换编码
1.UTF-8 转换 Unicode 在编写FTP Client时,发现通过recv获取的数据是采用UTF-8方式进行编码的,直接用Unicode方式进行显示时会发生错误。采用MultiByteToWideChar也无法正确转换(default是Ascii to Unicode。是我的设置问题?没有仔细研究)。 因此学习了下UTF-8的编码原理,参考如下:标准的UTF-8
2014-04-14 12:14:13
820
原创 @synthesize和@property详解
@synthesize和@property详解我们在进行iOS开发时,经常会在类的声明部分看见类似于@synthesize window=_window; 的语句,那么,这个window是什么,_ window又是什么,两个东西分别怎么用,这是一个比较基本的问题,也关乎我们理解Objective-C中对类、类的属性、类的存取器、类的局部变量的统一理解。在32位系统中,如果类的
2014-04-14 12:10:22
702
原创 mac下svn问题——“.a”(静态库)文件无法上传解决
“.a”(静态库)文件无法上传(svn工具:Versions) 网上查询了一下,说是Xcode自带的svn和Versions以及一些其它工具都不能上传".a"文件。 解决办法如下: 1.打开终端,输入cd,空格,然后将需要上传的.a文件所在的文件夹(不是.a文件)拖拽到终端(此办法无需输入繁琐的路径,快捷方便) ,回车;2.之后再输入
2014-04-13 10:21:02
691
原创 用CornerStone配置SVN,HTTP及svn简单使用说明
用CornerStone配置SVN,HTTP及svn简单使用说明摘要 CornerStone是Mac OS X系统下非常好用的一款svn工具,至XCode5之后,本人觉得XCode5的Svn实在让人不得要领,而CornerStone配置虽不难,但也有几个需要注意的地方,分享给大家,也希望大家能多提意见 声明:CornerStone是付费版128人民币,本文提供的破解版来自网
2014-04-13 10:15:43
1023
原创 loadView 和 viewDidLoad
loadView 和 viewDidLoad 是 iPhone 开发中肯定要用到的两个方法。 他们都可以用来在视图载入的时候初始化一些内容。 但是他们有什么区别呢? viewDidLoad 方法只有当 view 从 nib 文件初始化的 loadView 和 viewDidLoad 是 iPhone 开发中肯定要用到的两个方法。 他们都可以用来在视图载入的时候初始化一些内容。
2014-04-11 11:02:44
743
原创 IOS创建自己的框架
其实,IOS平台是使用框架而不是dll,框架里面包含公共头文件和二进制文件。很不幸,XCode并不支持你自己去创建框架。对于一个开发人员,这是个大问题,b/c缺少框架,我们就不得不去创建一个静态库文件。但是使用lib文件是一件痛苦的事情。实质上,向工程添加库的引用,并告诉功能工程在哪里可以找到你的头文件,这对于用户体验并非一件好事所以我们应该如何突破这个限制呢?在查阅过大量的资料之
2014-03-26 09:48:09
544
原创 IOS图标尺寸一览
IOS图标尺寸一览 iPhone专用程序: 图标名称大小圆角用途必需Icon.png57 X 5710px用于程序商店和在iPhone/iPod Touch中显示必需Icon@2x.png114 X 11420
2014-03-26 09:29:23
688
原创 webView 高级用方法 二 webview与js的通信框架
#import "MJViewController.h"#import "MBProgressHUD+Add.h"@interface MJViewController ()@end@implementation MJViewController- (void)viewDidLoad{ [super viewDidLoad];
2014-03-26 08:39:24
709
原创 webView 高级用方法 二
#import "MJViewController.h"#import "MBProgressHUD+Add.h"@interface MJViewController ()@end@implementation MJViewController- (void)viewDidLoad{ [super viewDidLoad];
2014-03-26 08:37:05
764
原创 webView 高级用法 一
1.隐藏上下滚动时出边界的后面的黑色的阴影- (void) hideGradientBackground:(UIView*)theView{ for (UIView * subview in theView.subviews) { if ([subview isKindOfClass:[UIImageView class]]) subview.hidde
2014-03-26 08:35:16
863
原创 IOS音乐库的两种方法application MusicPlayer iPodMusicPlayer
1.访问音乐库的两种方法,如下图(只能访问音频文件,如music,podcast,audiobook等)2.MPMusicPlayerController的使用有两种播放器可以选择,一种是application music player,另外一种是iPod music player。第一种播放器是一种内部播放器,当程序对出后停止播放;而第二种播放器则与iPod播放器内的信息相关,退
2014-03-21 00:04:24
1449
原创 iOS XML JSON SQLite CoreData 数据持久化
iOSXMLJSONSQLiteCoreData一、文件操作 1、因为应用是在沙盒(Sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件: * Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录 * tmp:存放临时文件,iTunes不会备份和恢复此目录,此目录下文件可能会在应
2014-03-20 23:59:49
1335
原创 Sprite Kit Learning Note
Sprite Kit Learning Note手动的动作系统核心思想定义标准速率值:Point per Second计算位置偏移量:即当前位置与目标位置的向量差正交化偏移向量:得到偏移量的方向单位向量计算新速度矢量:使方向向量与速率相乘,得到速度矢量在每帧更新位置:即用速度适量乘以标量没帧更新的时间差碰撞检测的基本思想AABB盒几盒
2014-03-20 23:57:04
846
原创 IOS cookie功能
本来以为自定义cookie能够把一个域中的cookies,带给另外一个域来使用.实际中没有考虑到服务器也是根据域进行逻辑限定的,最终无法使用的.下面的代码当作证明过程中的一个关键部分实现吧.[objc] view plaincopyNSArray *tmp_Cookies = [[NSHTTPCookieStorage s
2014-03-20 23:53:57
779
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人