随笔分类 - Objective-c
摘要:当程序接到内存警告时View Controller将会收到这个消息:didReceiveMemoryWarning从iOS3.0开始,不需要重载这个函数,把释放内存的代码放到viewDidUnload中去。这个函数的默认实现是:检查controller是否可以安全地释放它的view(这里加粗的view指的是controller的view属性),比如view本身没有superview并且可以被很容易地重建(从nib或者loadView函数)。如果view可以被释放,那么这个函数释放view并调用viewDidUnload。你可以重载这个函数来释放controller中使用的其他内存。但要记得调用
阅读全文
摘要:objective-c中,当一个类使用到另一个类时,并且在类的头文件中需要创建被引用的指针时,如下面代码:A.h文件C代码 #import"B.h" @interfaceA:NSObject{ B*b; } @end#import "B.h" @interface A : NSObject { B *b;}@end为了简单起见:A类是引用类,B类是被引用类,这里先不考虑A类的实现文件。通常引用一个类有两种办法: 一种是通过#import方式引入;另一种是通过@class引入;这两种的方式的区别在于:1、#import方式会包含被引用类的所有信息,包括被引
阅读全文
摘要:引用地址:http://blog.csdn.net/zkdemon/article/details/7446319核心动画,开发人员可以为他们的应用创建动态用户界面,而无需使用低级别的图形 API,如 OpenGL 来获取高效的动画性能。文章来源好岸园IT技术学习网:http://www.hopean.com前言,核心动画的好处1.简单易用的高性能混合编程模型。2.类似视图一样,你可以通过使用图层来创建复杂的接口。通过是CALayer来使用更复杂的一些动画。3.轻量级的数据结构,它可以同时显示并让上百个图层产生动画效果。控制多个CALayer来显示动画效果4.一套简单的动画接口,可以让你的动画
阅读全文
摘要:iOS提供了拍击、旋转、滑动、挤捏等丰富的手势,因此对图像的操作就显得非常友好、简单。下面代码展示了使用UIGestureRecognizer对图像进行缩放、移动、旋转操作使用方法。在使用代码之前,首先建立一个UIView,并在该视图中增加一个UIImageView视图,用于展示图像。那么该UIView就类似图像画板一样,对图像的操作都基于此视图中进行。[代码] 在视图中创建手势识别器UIGestureRecognizers01 - (void)viewDidLoad {02 [super viewDidLoad];03 04 UIPinchGestureRecognizer *pinch..
阅读全文
摘要:iOS UIPopOverController的使用问题今天不经意间发现了UIPopOverController的使用,使用iphone模拟器会出现Crashcrash的原因如下:'NSInvalidArgumentException', reason: '-[UIPopoverController initWithContentViewController:] called when not running under UIUserInterfaceIdiomPad.'所以必须使用ipad进行浏览,所以在代码中使用UI_USER_INTERFACE_IDIOM
阅读全文
摘要:方法一:在viewDidLoad时为UIView添加操作点击打开链接UISwipeGestureRecognizer*recognizer;recognizer=[[UISwipeGestureRecognizeralloc]initWithTarget:selfaction:@selector(handleSwipeFrom:)];[recognizersetDirection:(UISwipeGestureRecognizerDirectionRight)];[[selfview]addGestureRecognizer:recognizer];[recognizerrelease];re
阅读全文
摘要:iOS开发点击UIButton实现UIView的旋转更多阅读请访问http://www.hopean.comhttp://www.hopean.com首先创建界面,在viewDidLoad创建view以及button相关代码如下-(void)viewDidLoad{ [super viewDidLoad]; viewDemo = [[UIView alloc] initWithFrame:CGRectMake(0, 50, 320, 50)]; [viewDemo setBackgroundColor:[UIColor brownColor]]; UILabel...
阅读全文
摘要:先看下面的代码:更多阅读请访问http://www.hopean.com- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info { NSString*mediaType = [infoobjectForKey:UIImagePickerControllerMediaType]; if([mediaTypeisEqualToString:@"public.image"]){ image= [infoobjec
阅读全文
摘要:更多阅读请访问http://www.hopean.com如果要显示一个alert窗口(比如用来显示错误或警告信息、询问用户是否确认某操作等等),只要简单地创建一个UIAlertView对象,再调用其show方法即可。示意代码如下:文章出处:http://blog.csdn.net/toss156/article/details/7161667[cpp]view plaincopyUIAlertView*alertView=[[[UIAlertViewalloc]initWithTitle:@"Title"message:@"Message"delegat
阅读全文
摘要:iOS开发UIWebView展示网页实例代码更多阅读请访问http://www.hopean.comUIWebView是ios内置的浏览器控件,我们可以用它来浏览网页、打开文档等等。代码如下viewController.h@interface ViewController : UIViewController<UIWebViewDelegate>{ UIWebView *webView; UIActivityIndicatorView *activityIndicatorView;}@endviewController.m- (void)viewDidLoad{ [super...
阅读全文
摘要:点击View的空白处UITextField取消第一响应在学习的时候会遇到这个问题,点击空白处取消了UITextField的第一响应http://www.hopean.com更多阅读请访问http://www.hopean.com相关代码如下:在viewDidLoad中创建UITextField textFieldDemo = [[UITextField alloc] initWithFrame:CGRectMake(0, 150, 130, 30)]; textFieldDemo.backgroundColor = [UIColor brownColor]; textFieldDe...
阅读全文
摘要:一:EXC_BAD_ACCESS异常介绍在调试objective-c程序的过程中,程序crash的现象在所难免,但大部分的错误都能够通过显示的错误原因结合NSLog的方式来解决,比如NSInvalidArgumentException(名字就能看出来是什么错误)等,实在搞不定还有debug这个杀手锏。但唯独EXC_BAD_ACCESS这个异常太难处理了,名字看不出来是什么原因,其他提示也没有,debug都搞不定。先来介绍下EXC_BAD_ACCES:这个异常基本上是内存使用不当造成的,而且90%的错误来源在于对一个已经释放的对象进行release操作。二:分析方法为工程运行时加入 NSZom.
阅读全文
摘要:刚开始学习iOS开发的同学可能在看别人的代码的时候会发现有部分#import操作写在m文件中,而h文件仅仅使用@class进行声明,不禁纳闷起来,为什么不直接把#import放到h文件中呢?这是因为h文件在修改后,所有import该h文件的所有文件必须重 新build,因此,如果把#import写在h文件中,import该h文件的文件也就会产生不必要的编译,增加编译时间,特别是在项目文件多的情况 下。想象一下,如果只是修改一个h文件而导致上百个文件不必要的编译,那是一件多么让人纠结的事情。。。对于@class只是告诉编译器有这个class,请不要报错或警告,因此不会给编译造成影响。什么时候用@
阅读全文
摘要:-(void)dictionaryPrint{ NSArray *keys = [dic allKeys]; id key,value; for (int i = 0; i < [keys count]; i++) { key = [keys objectAtIndex:i]; value = [dic objectForKey:key]; //NSLog(@"Key:%@ -- %@",key,value); for (int j = 0; j<[value count]; j++) { NSString *str = [va...
阅读全文
摘要:NSString *tmpStr = [[NSString alloc] initWithString:@"abcdefg"]; NSRange range; range = [tmpStr rangeOfString:@"a"]; if (range.location != NSNotFound) { NSLog(@"found at location = %d, length = %d",range.location,range.length); }else{ NSLog(@"Not Found"); }更多阅
阅读全文
摘要:方法一 入栈 UIChildDemoViewController *childView = [[UIChildDemoViewController alloc] init]; [self.navigationController pushViewController:childView animated:YES]; 出栈 [self.navigationControllerpopToRootViewControllerAnimated:YES];方法二入栈UIChildDemoViewController *childView = [[UIChildDemoViewC...
阅读全文
摘要:UItableView和UISearchBar实现简单表格搜索/*********************************************************************文件名称:SingletonDemoTest.m作 者:好岸园技术学习网网 址:http://www.hopean.com创建时间: 12-11-7文件描述:作者:好岸园技术学习网网 址:http://www.hopean.com*********************************************************************/- (void)viewD.
阅读全文
摘要:NSDictionary-DeepMutableCopy.h:#import<Foundation/Foundation.h>@interfaceNSDictionary(DeepMutableCopy)-(NSMutableDictionary*)mutableDeepCopy;@end类别DeepMutableCopy为NSDictionary实现新的方法,实现对NSDictionary的深层拷贝,如果只是用NSMutableDictionary, 则此对象和源对象将会指向同一个对象,对copy对象修改的话,也会同时修改源对象。NSDictionary-DeepMutableC
阅读全文
摘要:在一个已排序的NSArray中搜索某一特定字符串?答案是使用CFArray自带的搜索功能:NSMutableArray *sortedArray = [NSMutableArrayarrayWithObjects:@"Alice",@"Beth",@"Carol",@"Ellen",nil];//Where is "Beth"?unsignedindex = (unsigned)CFArrayBSearchValues((CFArrayRef)sortedArray,CFRangeMake(0,
阅读全文
摘要:单例模式Singleton模式的简单特点 单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。有一下特点1.有一个私有的无参构造函数,这可以防止其他类实例化它,而且单例类也不应该被继承,如果单例类允许继承那么每个子类都可以创建实例,这就违背了Singleton模式“唯一实例”的初衷。2.单例类被定义为sealed(密封的),就像前面提到的该类不应该被继承,所以为了保险起见可以把该类定义成不允许派生,但没有要求一定要这样定义。3.一个静态的变量用来保存单实例的引用。4.一个公有的静态方法用来获取单实例的引用,如果实例为null即创建一个。/***********
阅读全文
浙公网安备 33010602011771号