
iOS
文章平均质量分 80
AldisZhan
We are the heroes of our time.
But we're dancing with the demons in our minds.
展开
-
CoreData 理解和编程
CoreData是对sqlite数据库的一个封装.sqlite数据库操作的基本流程是, 创建数据库, 再通过定义一些字段来定义表格结构, 可以利用sql语句向表格中插入记录, 删除记录, 修改记录, 表格之间也可以建立联系.这个过程出现了, 表格的结构(schema), 所有表格的结构和相互联系构成整个数据库的模型, 数据库存放的方式(可以是文件或者在内存), 数据库操作, sql语句(主原创 2012-08-30 23:15:15 · 2833 阅读 · 0 评论 -
iOS 6 手持方向处理
iOS6手持方向处理 从iOS 5的应用程序更新到iOS6很多特性没法正常工作。主要的问题是,有一些API在新的SDK中已被弃用。其中手持方向的判断就是很明显的一个存在的问题假如你应用程序只有一个屏要是横向,其它的屏都要是纵向。iOS5的解决方案在应用程序的Info.plist文件,Supported interface orientations应该只包含一个项目,原创 2012-11-21 00:18:32 · 3166 阅读 · 0 评论 -
UIImageView模糊, 边缘被切割问题
今天发现一个奇怪的问题,有一个8x8像素的黑色圆点图片。如果把UIImageView 的frame的x,y设置成一个*.5时,类似下面UIImageView *imageView = [UIImageView initWithImage:@"dot.png"];imageView.frame = CGRectMake(100.5, 100.5, imageView.frame.size.wi原创 2012-11-23 00:06:20 · 4892 阅读 · 0 评论 -
Objective-C 单例模式写法以及单例模式模板宏
Objective-C Singleton 单例模式解析,单例模式就是只有一个实例,确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类。objective c 单例模式,objective c 设计模式,objective c singleton 。单例指一个唯一的,由全局共享的对象,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这原创 2012-08-28 22:03:26 · 3978 阅读 · 5 评论 -
UITextField 使用全面解析
//初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect;原创 2012-11-02 00:04:21 · 5627 阅读 · 2 评论 -
cocos2d 学习之路 (一)
这个系列的文章纪录下我的cocos2d学习,希望可以帮助到同样热爱ios的朋友。介绍 Cocos2D是iPhone开发中一个非常有用的库,它可以让你在创建自己的iPhone游戏时节省很多的时间。它具有很多的功能,比如sprite(精灵)扶持,非常酷的图形效果,动画效果,物理库,音频引擎等等。你完全可以免费把它用于商业开发而获得收益。复杂讲,Cocos2d-iPhone是基于原创 2012-12-06 00:15:55 · 5444 阅读 · 0 评论 -
Foundation和Core Foundation掺杂使用桥接 Toll-Free Bridging
在cocoa application的应用中,我们有时会使用Core Foundation(CF),我们经常会在Objective-C和CF之间进行转化。系统使用arc的状态下,编译器不能自动管理CF的内存,这时候你必须使用CFRetain和CFRelease来进行CF的内存的管理。具体的CF内存管理规则见: Memory Management Programming Guide fo原创 2012-12-25 00:03:44 · 2935 阅读 · 0 评论 -
Objective C Log日志提高 预定义宏使用
使用NSLog记录日志是很方便的操作,但是有时候也希望能够像C/C++编程一样使用一些预定义的宏,比如获取当前文件名、行号等,在XCode中其实也有这样的功能。XCode的c预处理器提供了一些标准宏,另外Objective-C语言还提供了隐含的_cmd参数,可以用来获取当前方法的selector,以及将selector与class转换为字符串的函数。可以在NSLog中使用这些宏及函数来增强原创 2012-12-26 00:28:37 · 3917 阅读 · 0 评论 -
Objective C ARC下的单例模版宏 ARC Singleton template
之前写过一篇关于非ARC的单例模版宏的文章地址但现在ARC的使用越来越广泛,原来的模版宏可能已经不是很适应,那介绍一下ARC版的模版宏的写法和用法写法ARCSingletonTemplate.h#define SYNTHESIZE_SINGLETON_FOR_HEADER(className) \\+ (className *)shared##class原创 2012-12-07 02:19:50 · 5037 阅读 · 3 评论 -
Objective C TCP 通讯实例
TCP通讯实例Communicator.h #import @interface Communicator : NSObject { @public NSString *host; int port;} - (void)setup;- (void)open;- (void)close;- (void)stream:(NSStream *)stream ha原创 2013-01-23 00:50:49 · 6597 阅读 · 0 评论 -
iOS图片倒影效果的2种实现
实现一使用一个继承自UIView的类来包含要实现倒影效果的图片,重写这个UIView子类的绘图方法,以实现图片于倒影,然后把这个View 添加到相应的地方显示。代码:CKReflectionImage.h#import @interface CKReflectionImage : UIView {@private UIImage *image原创 2013-01-30 00:28:43 · 4500 阅读 · 1 评论 -
UITextField滑动防止被键盘挡住 终极解决方案
问题:当屏幕下方有textfield时会被弹出的键盘挡住,用户体验不太好。坚决方法:使用scroll view 当textfield成为first responder时 将textfield滑动到键盘上面网上这方面的解决方法有很多,但是都不够完美,比如无法真确处理手持方向改变时keybord高度不一样的情况,无法兼容iPad下键盘和iPhone高度不一样,动画不和谐,实现过于复原创 2013-02-20 00:22:53 · 5245 阅读 · 1 评论 -
了解Objective-C的动态特性
Objective-C具有相当多的动态特性,基本的,也是经常被提到和用到的有动态类型(Dynamic typing),动态绑定(Dynamic binding)和动态加载(Dynamic loading)。这些动态特性都是在Cocoa程序开发时非常常用的语言特性,而在这之后,OC在底层也提供了相当丰富的运行时的特性,比如枚举类属性方法、获取方法实现等等。虽然在平常的Cocoa开发中这些较底转载 2013-03-25 22:55:50 · 2856 阅读 · 0 评论 -
UIAlertView点击灰色部分dismiss
模态弹出来的窗口,需要点击窗口以外的区域,也就是模态区域让这个窗口消失。一般这种场景会出现在iPad里,当你modalPresentationStyle为UIModalPresentationFormSheet时,会有这种需求。网上找了一下,这种东东还真能实现,UIAlertView也可以实现。- (IBAction)showAlert:(id)sender { alert = [[UIAle原创 2013-04-23 22:59:25 · 2997 阅读 · 0 评论 -
XCode 应用国际化设置
1.本地化应用程序中的字符串1.创建字符串文件(1)在Supporting Files包下新建一个String File。步骤如下: 注意:将文件命名为Localizable.strings(2)添加国际化文件。 选中Localizable.strings文件,打开File Inspector,添加想要显示的语言原创 2012-11-15 00:07:01 · 7078 阅读 · 0 评论 -
UIControl 使用全面解析
前面写过UILable 使用全面解析 UIButton 使用全面解析 UITextField 使用全面解析 它们有共同父类UIControl,对UIControl的理解有助全面理解iOS中的控件。UIKit提供了一组控件:UISwitch开关、UIButton按钮、UISegmentedControl分段控件、UISlider滑块、UITextField文本字段控件、UIPag原创 2012-11-06 23:54:20 · 2986 阅读 · 0 评论 -
Objective-C NSString使用方法解析
1//创建字符串对象数组 NSArray *array = [str componentsSeparatedByString:@"@"];//就是以@为标示 输出看看啦 int count=[array count]; int i; for(i=0;i<count;i=i+4) { printf("%i: %s\n",i,[[array objectAtIndex:i] UT原创 2012-08-26 22:26:04 · 2891 阅读 · 0 评论 -
UIApplication 用法解析
UIApplication,代表的是整个应用做的事,因此每个程序只能有一个,系统使用的是单例模式,就是上面的[UIApplication sharedApplication]来得到一个实例。这个单例实例是在系统启动时由main函数里面的UIApplicationMain方法生成,就是每个程序里都有的AppDelegate,它实现了UIApplicationDelegate的Protocol,也就原创 2012-08-27 21:00:46 · 2677 阅读 · 0 评论 -
Objective C KVC编程
KVC概述KVC是KeyValue Coding的简称,它是一种可以直接通过字符串的名字(key)来访问类属性的机制。而不是通过调用Setter、Getter方法访问。当使用KVO、Core Data、CocoaBindings、AppleScript(Mac支持)时,KVC是关键技术。使用KVC、KVO的优势通过规定了一组通用的Cocoa命名法则、调用规则等,实现了如下功能: 1原创 2012-09-07 23:44:52 · 2264 阅读 · 0 评论 -
Objective-C KVO 编程 改善现有iOS代码设计
KVC很多人都知道,那么什么是KVO呢?Key Value Observing,直译为:基于键值的观察者。KVO的优点当有属性改变,KVO会提供自动的消息通知。这样的架构有很多好处。首先,开发人员不需要自己去实现这样的方案:每次属性改变了就发送消息通知。这 是KVO机制提供的最大的优点。因为这个方案已经被明确定义,获得框架级支持,可以方便地采用。开发人员不需要添加任何代码,不需要设计自己的观原创 2012-09-09 22:42:24 · 4717 阅读 · 0 评论 -
Objective C Foundation基础框架
iOS Foundation基础框架就是以Foundation.h头文件的库#import Mac OS X和iOS都使用了Foundation基础框架。该框架中有很多日后开发常用的API,非常基础重要。以下就常用的类和结构做个介绍。NSObjctNSObject类,是ObjC类族中的根类。NSObject有一些高级特性支持,在灵活和高效开发中十分常用。perform…方法和原创 2012-09-17 21:57:31 · 4656 阅读 · 1 评论 -
iOS 禁用多按钮同时点击效果
公司里的测试们总是喜欢在一些并不是关键点上纠结Bug,最常见Screen里有多个可以点击的按钮或者视图,如果同时点击它们的话可能会出现各种错误异常之类的,而测试特别津津乐道于此类问题,看到有的项目为了修复此类问题竟然使用一个BOOL来标记判断然后维护起来极其恐怖,其实有非常简单的方法实现[view setExclusiveTouch:YES];官方文档解释exclusiveTouc原创 2012-10-08 23:19:26 · 4635 阅读 · 0 评论 -
自适应宽高UILable
有时一个UILable的text内容是变化的,而且差异有很大,需求上要求UILabel的大小高宽能够自适应text的内容。代码例子:myLable=[[UILabel alloc] initWithFrame:CGRectMake(0, 23, 175, 33)]; [myLable setFont:[UIFont fontWithName:@"Helvetica" size:10.0]]原创 2012-10-10 01:34:28 · 5307 阅读 · 0 评论 -
Objective-C中@private、@protected、@public 解析
Objective-C中,类的实例化变量的范围有@private、@protected、@public。他们代表的意思和C++中相同,只是前面添加了一个@符号。下面介绍一下他们代表的范围:指令意思@private作用范围只能在自身类@protected作用范围在自身类和继承自己的子类,什么都不写,默认是此属性。原创 2012-10-12 01:55:14 · 13206 阅读 · 0 评论 -
iOS 6 Secure密码UITextField造成非密码UITextField退格清空Bug
今天客户报了一个应用在iOS6上的bug,比如有一个secureTextEntry为Yes的UITextField和一个普通的UITextField,重现步骤:1. 点击普通的UITextField输入类容,2. 点击密码UITextField输入内容,3. 点击普通的UITextField重新获得焦点,4. 接着点击键盘上的退格键,结果:这时会发现普通的UITextField被清空了原创 2012-10-16 01:19:54 · 4976 阅读 · 7 评论 -
Objective c LLVM 4.0 的新特性
Objective c LLVM 4.0 的新特性在最新的 Xcode 4.4 中,增加了许多新特性。其中包括更方便的代码输入,这得益于 LLVM 编译器 4.0 的更新。这一更新可大大提高写代码的效率。1. 所有的 NSNumber 表达从 Xcode 4.4 起,所有的 [NSNumber numberWithInt: 10] 之类的表达现在都可以写作 @10,如:原创 2012-10-19 20:13:15 · 3182 阅读 · 0 评论 -
UIButton 使用全面解析
一、创建两种方法:1. 常规的 initWithFrame UIButton *btn1 = [[UIButton alloc]initWithFrame:CGRectMake(10, 10, 80, 44)]; 对代码创建View(UIControl继承自UIView,所以也是view)不甚了解的请参看:《有关View的几个基础知识点》原创 2012-11-05 00:18:25 · 5907 阅读 · 5 评论 -
Objective-C #define 用法解析
Objective-C : #define 用法解析在 C 语言中,预处理代码 (Preprocessor) 是非常强大的工具,能让你的代码变得更加易读和易改。利用预处理代码,你可以重新定义代码的一部分,使得你的代码更适合你的风格。预处理代码 (Preprocessor) 在代码编译之前被提前处理。预处理代码均由一个井号 (#) 打头。1. 关于 #define#def原创 2012-10-26 01:10:37 · 15054 阅读 · 0 评论 -
UILable 使用全面解析
//创建uilabel UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(20, 40, 280, 80)]; //设置背景色 label.backgroundColor = [UIColor grayColor]; //设置tag label原创 2012-11-06 00:35:17 · 4744 阅读 · 0 评论 -
如何运用Xcode创建单元测试UnitTest
如何运用Xcode创建单元测试UnitTest一. UnitTest背景知识单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开原创 2013-04-25 23:09:16 · 5908 阅读 · 0 评论