- 博客(284)
- 资源 (3)
- 收藏
- 关注
转载 设计模式C++实现(1)——工厂模式
软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。本文介绍工厂模式的实现。 工厂模式属于创
2014-03-20 16:39:31 981
转载 self.abc = nil 和 [abc release]的区别
self.abc = nil 和[abc release]的本质区别是前者使用property的点操作符,也就相当于调用了对应的set method,和这句是一样的:[self setAbc: nil];而后者没有通过property,直接访问了成员变量,调用了它的release方法。对于set method来说,用synthesize来让系统帮我们生成的set方法和如下的
2014-03-20 16:10:36 1559
转载 手把手教你ARC——ARC入门和使用
本文部分实例取自iOS 5 Toturail一书中关于ARC的教程和公开内容,仅用于技术交流和讨论。请不要将本文的部分或全部内容用于商用,谢谢合作。本文适合人群:对iOS开发有一定基础,熟悉iOS开发中内存管理的Reference Counting机制,对ARC机制有听闻很向往但是一直由于种种原因没有使用的童鞋。本文将从ARC机理入手对这个解放广大iOS开发者的伟大机制进行一个剖析,并逐步
2014-03-20 15:42:31 1623
转载 IOS内存管理 ARC技术概述
ARC(Automatic Reference Counting )技术概述Automatic Reference Counting (ARC) 是一个编译期的技术,利用此技术可以简化Objective-C编程在内存管理方面的工作量。这里我把此技术翻译为自动内存计数器管理技术,下图是使用和不使用此技术的Objective-C代码的区别。ARC技术是随着XCode
2014-03-20 15:41:41 1223
转载 iOS内存管理
1. 内总管理原则(引用计数) IOS的对象都继承于NSObject, 该对象有一个方法:retainCount ,内存引用计数。 引用计数在很多技术都用到: window下的COM组件,多线程的信号量,读写锁,思想都一样。 (一般情况下: 后面会讨论例外情况) alloc 对象分配后引用计数为1 retain 对象的引用计数
2014-03-20 15:28:54 1053
原创 UILocalNotification 本地通知
首先是添加一个本地通知到系统中,代码如下:[objc] view plaincopy// 初始化本地通知对象 UILocalNotification *notification = [[UILocalNotification alloc] init]; if (notification) { // 设置通知的提醒时间
2014-03-20 11:16:28 2372
转载 UIRefreshControl:点击按钮实现下拉刷新
新浪微博的app中有一个功能,就是点击一个tabBarItem时,表格会自动下拉刷新,不需要人手工操作。以前写过新浪微博app的Demo,但当时一直没想明白以上功能是怎么做到的,现在找到方法了,很简单,就是在点击按钮后,设置Table View的contentOffset就可以了。首先是UIRefreshControl的初始化代码:[objc]
2014-03-20 11:15:37 2989 1
转载 使用Xcode和Instruments调试解决iOS内存泄露
虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关系比较复杂时,内存泄露还是可能存在。所以了解原理很重要。这里讲述在没有ARC的情况下,如何使用Instruments来查找程序中的内存泄露,以及NSZombieEnabled设置的使用。本文假设你已经比较熟悉Obj-C的内存管理机制。实验的开发环境:XCode 4.5.21、运行Demo。先下载一个实现准
2014-03-20 10:29:08 1162
原创 UIScrollView控件详解
UIScrollView的属性总结属性作用CGPoint contentOffSet监控目前滚动的位置CGSize contentSize滚动范围的大小UIEdgeInsets contentInset视图在scrollView中的位置iddelegate
2014-03-19 17:43:27 2763
转载 开源中国iOS客户端学习——(一)Prefix.pch文件
当我们新建一个工程的时候,在Supporting FIles文件下会看到一个以 -Prefix.pch结尾文件的文件,pch全称是“precompiled header”,也就是预编译头文件,该文件里存放的工程中一些不常被修改的代码,比如常用的框架头文件,这样做的目的提高编译器编译速度。我们知道当我们修改一个工程中某个文件代码时候,编译器并不是重新编译所有所有文件,而是编译改动过文件的,假如pc
2014-03-19 17:18:26 1455
转载 iOS开发之Target-action模式(点击按钮,滑动滑块等)
Target-action:目标-动作模式,它贯穿于iOS开发始终。但是对于初学者来说,还是被这种模式搞得一头雾水。其实Target-action模式很简单,就是当某个事件发生时,调用那个对象中的那个方法。如:按下按钮时,调用Controller里边的click方法。“那个对象”就是Target,“那个方法”就是Action,及Controller是Targer,click方法是actio
2014-03-19 15:13:36 2309
转载 MacOS中的设计模式
一 用 设计 模式来 简化你的应用 使用Objective-C编程 为应用添加特定行为的方式一般是通过接口 。你 可以通过 参数化一个超类的属性和行为或者以各种方式来修改它来创建一个已存在类的子类 。但也有其它更动态方式为应用 添加特定的行为,而不用使用派生方法 。这些动态的技术和方法基于设计模式。就像这篇 文章提到的,你可以在你的代码中通过适配设计模式来构造出更重用
2014-03-19 15:09:46 1230
转载 UIResponder
在 iOS 中,一个 UIResponder 对象表示一个可以接收触摸屏上的触摸事件的对象,通俗一点的说,就是表示一个可以接收事件的对象。 iOS 中,所有显示在界面上的对象(UIView也是)都是从 UIResponder 直接或间接继承的。 下面是 UIResponder 类的一些定义信息: 触摸事件相关:方法名称
2014-03-19 14:16:39 1174
原创 代码块(block)的使用---iOS4.0以后推出(声明成属性的时候,用copy修饰)
代码块本质上是和其他变量类似。不同的是,代码块存储的数据是一个函数体。使用代码块是,你可以像调用其他标准函数一样,传入参数数,并得到返回值。脱字符(^)是块的语法标记。按照我们熟悉的参数语法规约所定义的返回值以及块的主体(也就是可以执行的代码)。下图是如何把块变量赋值给一个变量的语法讲解:按照调用函数的方式调用块对象变量就可以了:int result = myB
2014-03-19 13:01:43 1559
转载 Cocoa 框架 For iOS(二)对象的分配初始化、内省、单例
接上一篇 Cocoa 框架总结For iOS(一) ,继续总结Cocoa对象1、Cocoa对象的创建我们都知道创建一个对象有两步:alloc 和 init(对象分配和初始化),两步缺一不可。初始化一般都是紧接着对象分配的后面进行,但是这两个操作的作用是完全不同的。分配对象:就是Cocoa从应用程序的虚拟内存中为对象分配一块内存。Cocoa会根据对象的实例变量(类型和变量的排列顺序)
2014-03-18 20:19:39 1230
转载 Cocoa 框架 For iOS(一) 框架的介绍,Objectivie-C运行时能力的解析等
Cocoa框架是iOS应用程序的基础,了解Cocoa框架,对开发iOS应用有很大的帮助。1、Cocoa是什么?Cocoa是OS X和 iOS操作系统的程序的运行环境。是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发中你可以使用各种语言;也不是开发工具,你可以在命令行上就可以创建Cocoa程序。Cocoa程序可以这么说,它是由一些对象组成,而这些对象的
2014-03-18 20:18:45 1384
转载 iOS应用程序生命周期(前后台切换,应用的各种状态)详解
OS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的。 iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的。在后台时,程序会受到系统的很多限制,这样可以提高电池的使用和用户体验。//开发app,我们要遵循apple公司的一些指导原则,原则如下:1、应用程序的状态状态如下:Not running 未
2014-03-18 20:17:29 1690
原创 UINavigationController详解(四)iOS7新特性
@导航栏新不同1.控制器视图默认全屏显示,导航栏的不同设置会带来不一样的效果2.导航栏的颜色设置为新增属性:barTintColor3.导航栏的属性:tintColor用于设置控件颜色4.导航栏背景图片不同的size会展示不同的效果5.导航栏中设置控件的image对象都需要
2014-03-18 20:15:36 3210
原创 Objective-C分类 (category),扩展(Extension)和协议(protocol)
@类目-分类(category)1.类目:类目(也成类别:Category)是一种为现有类添加新方法的方式2.类目的局限性:1)类目无法向已有的类中添加实利变量;2)如果类目中的方法和已有类中的方法名称冲突时,类目中的方法优先级高,发生这种情况,则已有类的原始方法永无天日,最好的办法是将自己扩展的方法和原始方法区分开来。3.类目的作用:• 将类的实现分散到多
2014-03-18 19:26:21 5584
原创 NSObject一些比较常用的方法和简单的反射
#pragma mark NSObject常用方法// 判断是否为aClass或者aClass的子类的实例- (BOOL)isKindOfClass:(Class)aClass;// 判断是否为aClass的实例(不包括aClass的子类)- (BOOL)isMemberOfClass:(Class)aClass;// 判断对象是否实现了aProtocol协议- (BOOL
2014-03-18 11:39:15 1931
转载 NSLog的格式
NSLog的格式如下所示: • %@ 对象 • %d, %i 整数 • %u 无符整形 • %f 浮点/ 双字 • %x, %X 二进制整数 • %o 八进制整数 • %zu size_t • %p 指针 • %e 浮点/
2014-03-18 10:39:20 1205
原创 NSDate常用方法
#pragma mark NSDate创建(只举例类方法,实例方法一样)// 返回当前时间(GMT,0时区,格林尼治时间)+ (id)date;// 返回以当前时间为基准,然后过了secs秒的时间+ (id)dateWithTimeIntervalSinceNow:(NSTimeInterval)secs;// 返回以2001/01/01 GMT为基准,然后过了secs秒的时
2014-03-18 10:35:36 5196
原创 UINavigationController详解(三)UIToolBar
@创建ToolBar 1. 方法一:自己创建 UIToolbar *toolBar=[[UIToolbar alloc]initWithFrame:CGRectMake(0,568-44,320,44)]; toolBar.barStyle=UIBarStyleBlack; // 不限死,很多类型 [self.view addSubview:too
2014-03-17 22:16:24 2308
原创 UINavigationController详解(二)UINavigationBar(UIBarButtonItem)
@UINavigationBar-----(是一个View)基本介绍1.导航栏,和导航控制器一样,是一个容器用来显示提供的其他对象的内容2.导航栏显示的内容,通过设置UINavigationItem展示,每个controller都有专属的navigationItem3.导航栏的高度: iPhone : 竖屏 44 横屏 32 iPad:
2014-03-17 20:22:25 5526
原创 UINavigationController详解(一)
@UINavigationControlle简介:1.导航控制器,专门管理具有层级关系内容的导航2.采用栈的方式管理所有controller,每个controller管理各自的视图3.推出显示一个新的controller4.提供返回上一级controller的默认button和方法@UINavigationControlle结构:1.它是UIViewCont
2014-03-17 19:47:27 2097
原创 Dictionary运用之通讯录小程序
@实现通讯录。需求:1、创建联系人类AddressContact,联系人可以存储姓名(英文,首字母大写)、地址、邮箱、电话号码、分组名(即大写字母A~Z)。2、创建通讯录类AddressBook。3、通讯录使用字典分组管理所有联系人。(即key是大写字母A~Z,每个key对应的值是数组,管理对应的联系人).4、通讯录可以添加联系人。要求:(1) 添加到对应的分组中,(2)添
2014-03-17 19:14:47 2709
原创 小小小小小Hmt小战僵尸
// 普通僵尸@interface CommonZombie : NSObject{ NSString * _kind; int _totalBlood; int _everyDownBlood; BOOL _state; }@property (nonatomic,copy) NSString * kind
2014-03-17 19:06:30 894
转载 iOS-Xcode必备插件XAlign:瞬间优化你的代码
今天向大家介绍一个非常好用的Xcode代码编辑插件,这个插件可以很快速地使代码对齐,有3种模式:“=”对齐、宏定义对齐和属性对齐XAlign效果图1.“=”对齐2.宏定义对齐3.属性对齐安装1.打开终端输入:curl github.so/XAlign/build/install.sh | sh,
2014-03-17 13:45:20 2006
原创 那些不能错过的Xcode插件(一)
古人云“工欲善其事必先利其器”,打造一个强大的开发环境,是立即提升自身战斗力的绝佳途径!以下是搜集的一些有力的XCode插件。 1.全能搜索家CodePilot 2.0你要找的是文件?是文件夹?是代码?Never Mind,CMD+SHIFT+X调出CodePilot,输入任何你想到搜的东西吧!想搜appFinishLaunchingWithOptions?忘记咋拼了?没关
2014-03-17 13:34:25 1510
转载 UIView 你知道多少
曾经有人这么说过,在iphone里你看到的,摸到的,都是UIView,所以UIView在iphone开发里具有非常重要的作用。那么UIView我们到底知道多少呢。请看看下面的问题,如果这些你都知道,那么本文章的内容就请绕道,如果你还不太清楚,我想看了下面的内容,你就明白了。1。bounds和frame分别表示什么?2。ContentMode里UIViewContentModeSca
2014-03-17 11:15:43 1225
转载 UIViewController的生命周期和didReceiveMemoryWarning后的流程
@官方文档:The View Controller Life CycleUIViewController是IOS程序中的一个重要组成部分,扮演者一个大管家的身份,管理着程序中的众多视图:何时加载view,加载的原则是什么,视图何时消失等问题,文档中讲的都很详细。 Controller的view最好在需要显示时再去加载,并且在系统发出内存警告时释放不必要的v
2014-03-17 11:14:37 3790
原创 UISearchDisplayController 的使用
@借用一组图,来展示下UISearchDisplayController : 比如:搜索"万通",弹出一个tableView 显示出检索有这2个字的地点 @UISearchDisplayController(搜索显示控制器)详解:1.继承于NSObject,它并不是一个视图控制器,只是一个类,一个工具类2.提供一个searchBar和一个搜索结果tab
2014-03-17 10:11:34 9580
转载 NSPredicate 官方文档(中文版)
概览 NSPredicate类是用来定义逻辑条件约束的获取或内存中的过滤搜索。 您可以使用谓词来表示逻辑条件,用于描述对象持久性存储在内存中的对象过滤。虽然从 NSComparisonPredicate, NSCompoundPredicate, 和 NSExpression的实例直接创建谓词是常见的,但是你会经常用NSPredicate的类方法解析的格式
2014-03-15 20:05:01 1383
转载 Predicate Format String Syntax
This article describes the syntax of the predicate string and some aspects of the predicate parser.The parser string is different from a string expression passed to the regex engine. This article de
2014-03-15 20:03:42 2490
转载 NSPredicate详解(*@*)
简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取。定义(最常用到的方法):[cpp] view plaincopyNSPredicate *ca = [NSPredicate predicateWithFormat:(NSString *), ...];
2014-03-15 19:41:36 3237
原创 UISearchBar详解(二)数据刷选类:NSPredicate
@假设: NSArray * array = [[NSArray alloc]initWithObjects:@"luna",@"moon",@"",@"lion",@"coco", nil];// 数据的处理主要发生在这个方法中- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
2014-03-15 19:40:13 2092
转载 UISearchBar详解(一)基本属性补充: UIView *inputAccessoryView属性(iPhone电话簿的遮盖层)
1.@property (nonatomic, readwrite, retain) UIView *inputAccessoryView;属性例如:[self.searchBar setInputAccessoryView:your_View];// 提供一个遮盖视图当处于UISearchBar焦点状态下(输入框正要输入内容时),会有一个遮盖视图。你翻看一
2014-03-15 19:12:54 2779 1
原创 UISearchBar详解(一)基本属性
@UISearchBar * search = [[UISearchBaralloc]initWithFrame:CGRectMake(0,44, 320,120)];#pragma mark - 基本设置 // 控件的样式 默认--0白色,1是黑色风格 /* UIBarStyleDefault = 0,
2014-03-15 16:34:17 18505
原创 UITabBarController详解(二)UITabBarController的代理方法以及模态显示
@首先要实现协议 // 设置代理 tabBarController.delegate =self; //UINavigationController *nav = tabBarController.moreNavigationController; //[nav setNavigationBarHidden:YES animated:YES]
2014-03-15 13:48:26 5575
原创 UITabBarController详解(一)UITabBarController的介绍和设置(偷了点懒,直接用了ARC)
@首先我们看一下它的view层级图:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ self.window = [[UIWindow alloc] initWithFrame:[[UIScreen ma
2014-03-14 22:41:08 4143
iOS7 ViewController转场
2014-09-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人