- 博客(55)
- 资源 (14)
- 收藏
- 关注
原创 一套基于NSPredicate的NSArray过滤框架
GHArrayFilter 一套NSArray的过滤Api,底层利用NSPredicate实现 基本函数 where(keypath) :如果是字符串数组,传nil,否则传model类的属性名query() :最终的执行函数,每次查询结尾必须调用 运算 运算函数中 可以传基本类型,其结果等同于NSNumber 可以传char ,const char,char []
2017-04-01 02:15:24
703
原创 一套高仿Python的Objective-C API
GHFunctionCode 根据python语言特点,编写的几个仿照python的api list模块 list_t ----> NSArray * mlist_t ----> NSMutableArray * [目前支持的api] join(str)->str lappend(id)->void mextend(list_t)->void minsert(id,in
2017-04-01 02:13:17
534
原创 将Objective-C变得简单————原创的模仿python的oc框架
自己封装了一个类Python的OC api,让开发的变得容易和简单 NSString是这样操作的 str_t str = @"abcdef"; str = str.upper(); str = str.lower(); str = @"i have a dream"; str = str.title(); list_t list = s
2017-03-24 13:54:43
1225
原创 iOS开发者:其实你还有很多东西需要学
iOS 新特性总结(since iOS6) iOS 6 1、废除viewDidUnLoad 收到内存警告需要到didReceiveMemoryWarning中处理 【小技巧】 -(void)didReceiveMemoryWarning { [super didReceiveMemoryWarning];//即使没有显示在window上,也不会
2016-11-17 17:14:48
5647
原创 一个Xcode插件
把一些常用的工具 集成到了Xcode里面 https://github.com/900116/GHGreatTools
2016-08-19 10:49:07
491
原创 IOS之字典转模型
iOS支持KVC,所以字典转模型变得超级简单。 我们希望我们写的字典转模型是通用的,这样我就想到用Category,加到Object里面。 然后创建一个Category @interface NSObject (gh_dict) //添加两个方法 //第一个方法,是一个类方法,可以通过字典转换成对象 +(instancetype)gh_objWithDict:(NSD
2016-08-02 18:30:34
1185
原创 自己开发的一个Xcode插件
由于项目的长期迭代,很多图片已经不使用了,但是项目太大,我们无法知道,这样也会增大包的大小 很多人都在问如何找到项目中,未使用的图片,所以我就开发了一款,找出项目未使用图片,并且可以删除。 插件安装方法 1、build插件项目,重启Xcode 2、弹出一个警告窗口,点击“load bundle” 3、Edit菜单会多出现一个选项,出现一个ClearUnUseImage的按钮 4
2016-06-01 14:53:17
516
原创 开发效率提升百分百的秘密
工欲善其事,必先利其器。磨刀不误砍柴工。我们先磨磨刀。 在实际开发中,Xcode相比eclipse有很多不尽如人意的地方,比如它不能自动导入头文件。自动提示有些鸡肋。代码注释不能像eclipse那样完善。不能生成父类已有的方法(eclipse有这个功能),这些不足之处,都会浪费我们一定的经历做一些重复性的工作。 但是好在,Xcode支持插件开发,这就诞生了很
2016-05-23 13:31:28
3825
原创 ios之GCD学习笔记(3)
/* 15、void dispatch_suspend(dispatch_object_t object) 会令队列挂起,但并不意味代码不会执行,它会继续执行未完成的任务 ,但是未开始的任务将不会被执行 void dispatch_resume(dispatch_obje
2016-05-23 13:30:49
827
原创 ios之GCD学习笔记(2)
/* 10、void dispatch_group_enter(dispatch_group_t group); 该方法可以主动让未完成的block任务数字+1 voiddispatch_group_leave(dispatch_group_t group); 该方法可以主动让未完成的block任务数字-1
2016-05-23 13:30:06
515
原创 ios之GCD学习笔记(1)
//1、 dispatch_once_t 用法 static dispatch_once_t onceToken; //必须保证只有一个实力,才能确保只执行一次 dispatch_once(&onceToken, ^{ //单例代码 }); //2、dispa
2016-05-23 13:29:33
558
原创 IOS之日历与提醒
IOS利用EventKit可以实现添加提醒和添加事件(日历)的功能 EKEventStore类 该类负责日历和提醒事件的管理,可以简单理解为数据库,可以对事件进行增删改查。 查询今天暂且不表,只说如何添加事件和提醒。 因为它就像数据库一样,频繁的开启,关闭会影响效率,所以如果你的程序需要频繁操作日历和提醒, 建议仅生成该对象一次,仅用一个对象进行操作。 @interface
2016-05-23 13:28:31
4311
原创 如何把运行期警告转移到编译期的几个小技巧
记得之前有篇帖子说过,应该尽量让运行期的错误,提升到编译期,这样就可以在编译时期解决错误,不需要在进行繁琐,费时的bug调试。但是在Objective-C中,我们如何做到呢。今天我就把我已经知道的一些ios的关键字和一些特殊的语法总结一下,以便大家来更好的优化代码,避免更多的错误。 1、__nullable和__nonnull 在Xcode6.3中,苹果引入了一个oc的
2015-11-23 14:08:06
711
原创 IOS程序员应该知道的一些第三方框架
IOS程序员应该知道的一些第三方框架 改变你的开发效率 Http协议 AFNetworking 基于NSURLConnection的一个轻量级的http协议框架。 MKNetworkKit 也是一个用户很多的网络框架 Reachability 可以监听网络状况 Socket CocoaAsyncSocket 使用CFSocket与runloop实现
2015-11-19 11:17:30
1003
原创 23种设计模式之我见(1)
23种设计模式之我见(1) 本文是我对设计模式的理解,旨在与大家分享心得,探讨心得。希望可以共同探讨。 工厂方法模式 定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。 其实工厂模式,可以分成三种,简单工厂模式,工厂方法模式和抽象工厂模式。 对于简单的工厂模式,其实有一个类方法(或静态方法就可以实
2015-11-18 11:52:44
617
转载 AFNetwork作用和用法详解
AFNetwork作用和用法详解 AFNetwork是一个轻量级的网络请求api类库。是以NSURLConnection, NSOperation和其他方法为基础的。 下面这个例子是用来处理json请求的: NSURL *url = [NSURL URLWithString:@"https://alpha-api.app.net/stream/0/posts/stream/globa
2015-11-18 11:44:56
637
原创 如何写程序(1)
本文是鄙人在学习《代码大全2》的一些心得和笔记,以及自己的一些理解,在此与各位码农,共同探讨和学习。 我想先从如何写程序来深入浅出的讨论编程的一些事儿,现在我们一起开始吧。 这篇文章对应书的第六章的前面的部分,有兴趣的可以看下原著。 1、如何应用ADT。 1.1 ADT是什么? ADT其实就是将数据和操作联合起的集合,对于面向对象编程来讲,说白了就是类,对于非面向对象程序来讲就是结
2015-11-18 11:44:08
507
原创 IOS粒子系统的实现
IOS粒子系统的实现 IOS的CoreGraphic可以实现简单的粒子系统的效果 我们来简单介绍一下,实现粒子系统其实非常简单,比较复杂的是其参数的设置 实现粒子系统主要用到两个类 CAEmitterLayer和CAEmitterCell 先介绍一下CAEmitterLayer(发射层) 其主要的属性有 @property(copy) NSArray *emitt
2015-11-18 11:43:12
1446
原创 IOS开发指南读书笔记12(IOS数据持久层的建立4)
IOS开发指南读书笔记12(IOS数据持久层的建立4) 建立CoreData需要首先建立一个模型文件 生成的后缀是xcdatamodeid,但是编译之后在沙盒的momd文件 首先Add Entity 然后Add Attribute(注意,属性名必须是小写) 然后生成ManageObject 建立CoreDa
2015-11-18 11:42:07
934
原创 IOS开发指南读书笔记11(IOS数据持久层的建立3)
IOS开发指南读书笔记11(IOS数据持久层的建立3) 基于SQLite的数据持久的实现 建立SQLite数据管理 //sqlite数据管理 @interface SQLiteNoteDao : NSObjectBaseNoteDao> { sqlite3* _db; } #define DBName @"Notes.sqlite3" @end
2015-11-18 11:41:14
468
原创 IOS开发指南读书笔记10(IOS数据持久层的建立2)
IOS开发指南读书笔记10(IOS数据持久层的建立2) 基于对象归档的实现 建立对象归档数据管理类 实现归档数据持久的对象实现NSCoding协议 其属性也必须是基本类型或者实现NSCoding协议的对象 我们堆Note做如下更改添加这两个方法 -(void)encodeWithCoder:(NSCoder *)aCoder { //编码
2015-11-18 11:40:10
480
原创 OS开发指南读书笔记9(IOS数据持久层的建立1)
IOS开发指南读书笔记9(IOS数据持久层的建立1) 建立IOS数据持久层,有以下几个方式 1、文本文件 plist/Xml/Json/NSUserDefault(等同于plist) 2、对像归档,反归档 3、SQLite数据库 4、Core Data 1、Xml(略)、NSUserDefault(略)\Json略 plist实现 plist 根节点为NSArra
2015-11-18 11:39:22
590
原创 IOS开发指南读书笔记8(AutoLayout) 2
IOS开发指南读书笔记8(AutoLayout) 其原理类似Android的RelativeLayout,适用于IOS6以上。如果不同约束有冲突,回遵循优先级的高的约束。 一、可以设定的约束有 1、高度、宽度 至少,等于,至多一个数值 至少,等于,至多为其他控件的宽度,高度 2、对齐方式 与父控件头部(左边Leading)对齐,尾部(右边Trailing)对齐,顶部对
2015-11-18 11:38:37
536
原创 IOS开发指南读书笔记7(ScrollView)
IOS开发指南读书笔记7(ScrollView) 1、ContentSize 2、CotentInset 3、ContentOffset
2015-11-18 11:37:52
533
原创 IOS开发指南读书笔记6(UIView家族)
IOS开发指南读书笔记6(UIView家族) UIView家族 二、视图分类 1、控件 继承UIControl,能够响应用户高级事件。 2、窗口 UIWindow,一个IOS应用只有一个Window对象。 3、容器 UIScrollView,UIToorBar,UITableView,UICollectionView。 4、显示视图 UIImageView,UI
2015-11-18 11:37:05
740
原创 IOS开发指南读书笔记5(IOS 常用设计模式)
IOS开发指南读书笔记5(IOS 常用设计模式) 1、单例模式 构造方法 @interface Singleton : NSObject +(Singleton*)sharedInstance; @property(nonatomic,strong) NSString* singletonData; @end @implementation Sin
2015-11-18 11:36:15
563
原创 IOS开发指南读书笔记4(IOS API分类)
IOS开发指南读书笔记4(IOS API分类) 1、IOS 体系架构 2、Cocoa Touch层 3、Media层 4、Core Services层 5、Core OS
2015-11-18 11:35:23
473
原创 IOS开发指南读书笔记3(视图的生命周期)
IOS开发指南读书笔记3(视图的生命周期) 1、视图的生命周期 ViewDidLoad方法只会调用一次,而viewWillAppear:、viewDidAppear:、viewWillDisAppear:、viewDidDisAppear:回调用多次。 低内存的情况下,IOS会调用didReceiveMemoryWarning:和viewDidUnload:,到ios6.0,
2015-11-18 11:34:33
522
原创 IOS开发指南读书笔记2(应用程序的生命周期)
1、程序的五种状态 Not Running:未运行。 Inactive:前台非活动状态。处于前台,但是不能接受事件处理。 Active:前台活动状态。处于前台,能接受事件处理。 Background:后台状态。进入后台,如果又可执行代码,会执行代码,代码执行完毕,程序进行挂起。 Suspended:挂起状态。进入后台,不能执行代码,如果内存不足,程序会被杀死。 2、五态的关系
2015-11-18 11:33:42
663
原创 IOS开发指南读书笔记1(Xcode的基本使用)
IOS开发指南读书笔记1(Xcode的基本使用) 1、用Xcode创建工程 Product Name:工程名字 Organization Name:组织名字 Company Identifier:公司标识。一般用域名倒叙。 Bundle Identifier:捆绑标识,由Product Name+Company Identifier组成。发布到AppStore会用到它。 Cla
2015-11-18 11:32:25
684
原创 IOS滤镜处理
IOS滤镜处理 需要InputBackgroundImage和InputImage的有 CIAdditionCompositing 影像合成 CIColorBlendMode 混合模式 CIColorBurnBlendMode 燃烧混合模式 CIColorDodgeBlendMode 避免混合模式 CIDarkenBlendMode CIE
2015-11-18 11:31:47
1179
原创 Objective-C基础之常用简单设计模式
Objective-C基础之常用简单设计模式 1、模型-视图-控制器 (1)模型 其实这是一个不是很想谈论的问题,这个问题经常被讲,都讲烂了,模型谁都会建立,但是最好与数据源匹配。模型类不要将控制器引入,这不是一个好的代码,因为我们希望它和控制器的耦合度尽量低。但也许会有一个委托,委托与控制器间通过协议进行关联,这样我们可不比指明控制器的具体类型,将会有好的拓展性,我们的模块具有相对
2015-11-18 11:30:31
698
原创 Objective-C 基础之强大的字面量
Objective-C 基础之强大的字面量 Objective-C对字面量的支持其实是很到位的。看到C#的字典可以用[]来取值就觉得很爽,现在发现Objective-C也非常的不错,接下来说一说Objective-C的字面量。 1、用字面量初始化字符串(NSString) 一般我们初始化字符串都是这样写 NSString* str = [NSString stringWithS
2015-11-18 11:29:41
604
原创 iOS-openGLES程序制作基本步骤以及某些API
最近研究了一下ios下的openGLES,给大家分享一下学习经验 openGLES就是openGL的阉割版,就是作者删除了一些自认为没多大作用的API。 openGL是啥,这里就不废话去讲了,我们直奔主题。 我们做OpenGLES的ios开发必须导入两个框架 QuartzCore.framework以及OpenGLES.framework(该框架的所有api都是c语言形式的) 本文分
2015-11-18 11:28:14
1194
原创 Objective-C高级编程之内存管理(2)
混合ARC与非ARC 一个app可以设置不同文件以不同形式ARC或非ARC进行混合编译。 只需要在文件后面的编译标签上标注-fobj-arc/-fno-objc-arc ARC修饰符 当设置ARC有效时,其类型必须设定所有权修饰符,而所有权修饰符有4种 __strong __weak __unsafe_unretained __autoreleasing 可
2015-01-24 12:54:20
681
原创 Objective-C高级编程之内存管理(1)
1、什么是ARC 顾名思义,自动引用计数是指内存管理中采用自动计数的技术。 苹果官方文档:在Obj-C中,采用ARC,让编译器进行内存管理,就无需键入release和retain相关代码,可以降低崩溃和内存泄露风险的同时,很大程度减少开发的工作量。 使用前提:Xcode 4.2以上 LLVM3.0以上 设置编译器ARC有效。 2、RC的内存管理和思考方式 有一个办公室,里面有
2015-01-24 12:12:00
680
原创 IOS强化知识(2)@class的运用
1、为什么使用@class 与C++语言一样,OC也需要一个头文件(h文件),一个实现文件(m文件)。当你引用其他类的时候,你就需要引入头文件。虽然引用头文件没有任何问题,但是如果你不想知道这个类的细节,只想知道它仅仅是个类的话,引用头文件可能显得多余,而且会增加编译的时间。用@class的话,你可以不引入任何头文件,就能让编译器知道某个它是一个类。例如: @cl
2014-10-24 22:07:18
1035
原创 IOS强化知识(1)认识Objective-C
一直想写一个整体的Objective-C的帖子,总是没时间,所以我想把大知识变小,小知识变更小,每天写一点点,来把自己学习的东西与大家分享,好了废话不多说。 1、一门动态的语言OC Object-C(以下简称OC)是一门面向对象语言,这恐怕学过编程的人都知道。但是OC跟其他语言相比,显得格格不入。因为它是一门消息结构语言,而非函数调用。所以语法上显得很怪,通常是这样:
2014-10-22 22:08:03
728
原创 每天一个OpenGL程序 第六篇 图形的组合绘制
#include #include #include #include // 练习6.1 基本图形的组合绘制 void render(); void initGL(); void main(int argc,char** argv) { glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB); glutInitWindowPosi
2013-08-26 09:42:09
2088
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人