随笔分类 -  objective-c 基础知识

摘要:示例1:基本赋值取值@interface Book : NSObject { NString *name;}@end#import "Book.h"@implementation Book@end这个Book类太简单了,只有一个实例变量name。而且,按照以前掌握的技术,没有办法给这个变量赋值了。下面KVC登场:Book *book=[[Book alloc] init];[book setValue:@"《Objective-C入门》" forKey:@"name"];NSString *name=[book valueForKey 阅读全文
posted @ 2013-09-04 15:32 高笑228 阅读(353) 评论(0) 推荐(0)
摘要:Objective-C很有趣的一个地方是,它非常非常像C。实际上,它就是C语言加上一些其他扩展和一个运行时间(runtime)。有了这个在每个Objective-C程序中都会起作用的附加运行时间,给了它一些动态的特性。C和C++没有运行时间,他们仅仅被编译为完全按照代码的顺序去执行,不多也不少。Objective-C中带有运行时间的好处是,它可以在你的程序运行的流程中进行参与。在Objective-C中,它包括检查是否一个对象可以处理特定的消息,如果不能处理,它就帮助你自动调用其他特定的方法去完成。initialize不是init运行时间的行为之一就是initialize。虽然看起来有点像大家 阅读全文
posted @ 2013-09-04 15:19 高笑228 阅读(288) 评论(0) 推荐(0)
摘要:vc 就是一种通过字符串去间接操作对象属性的机制,访问一个对象属性我们可以 person.age 也可以通过kvc的方式 [person valueForKey:@"age"]keypath 就是属性链式访问 如 person.address.street 有点象java里面的pojo ognl表达式子类的假如给出的字符串没有对象的属性 会访问valueForUndefineKey方法 默认实现是raise 一个异常 但你可以重写这个方法, setValue的时候也是一样的道理key path accounts.transactions.payee would return 阅读全文
posted @ 2013-07-15 11:02 高笑228 阅读(1050) 评论(0) 推荐(0)
摘要:http://beyondvincent.com/2013/04/11/ 阅读全文
posted @ 2013-05-23 17:55 高笑228 阅读(162) 评论(0) 推荐(0)
摘要:NSRunLoop1.NSRunLoop是消息机制的处理模式NSRunLoop的作用在于有事情做的时候使的当前NSRunLoop的线程工作,没有事情做让当前NSRunLoop的线程休眠2.nstimer默认添加到当前NSRunLoop中,也可以手动制定添加到自己新建的NSRunLoop的中[NSTimerschduledTimerWithTimeInterval:target:selector:userInfo:repeats];此方法默认添加到当前NSRunLoop中NSTimer*timer=[NSTimertimerWithTimeInterval:invocation:repeates 阅读全文
posted @ 2013-05-23 17:41 高笑228 阅读(341) 评论(0) 推荐(1)
摘要:CGImageRef UIGetScreenImage();- (UIImage *) getScreenImage:(UIView *)shotView{ CGImageRef cgImage = UIGetScreenImage(); void *imageBytes = NULL; if (cgImage == NULL) { CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB(); imageBytes = malloc(shotView.bounds.size.width * ... 阅读全文
posted @ 2013-05-15 09:41 高笑228 阅读(382) 评论(0) 推荐(0)
摘要:焦点在UITextField或UITextView中的时候,键盘会出现,想点一下背景就让键盘消失。这是在手持设备上服合用户的操作习惯。当然方法有很多,在这儿我说一个比较实用的方法。因为UIView默认是不能关联方法调用的,而UIControl则不一样,它可以关联很多方法。而UIControl是UIView的子类,它有UIView的所有特性,于是我们可以把我们的UIView修改为UIControl类,这样再给它关联一个事件,一般就是up in side,这样在这个关联的事件里我们dismiss所有的UITextField或UITextView.这儿有一个递归找view上所有的UiTextFiel 阅读全文
posted @ 2013-05-09 17:55 高笑228 阅读(243) 评论(0) 推荐(0)
摘要:2009-09-27 JHorn方法一NSDate* toDate1 = [ [NSDatealloc]initWithString:@"2520-9-26 17:10:00 +0600"];NSTimeIntervaldistance = [ toDate1 timeIntervalSinceNow];NSTimeIntervaliDat = distance / (86400) ;NSLog(@" From now to %@ diff: %f ", [toDate1 description ], iDat);[ toDate1 release ]; 阅读全文
posted @ 2013-05-08 18:49 高笑228 阅读(226) 评论(0) 推荐(0)
摘要:开发iPad应用程序与iPhone有一点小差别,就是iPad支持弹出框。这个示例展示如何在UIPopoverController上显示一个UIPickerView,当然你可以显示任何的UIView到UIPopover上面。原理就是构建一个UIViewController,然后将这个UIViewController加在UIPopoverController上,最近显示UIPopoverController,即显示出我们的UIViewController的内容。首先,要我们的controller支持UIPickerViewDelegate,UIPopoverControllerDelegate协议 阅读全文
posted @ 2013-05-08 18:16 高笑228 阅读(218) 评论(0) 推荐(0)
摘要:在iOS 5下画面的旋转都是shouldAutorotateToInterfaceOrientation来控制的,但是这个函数在ios6下不起作用。在iOS 6下使用supportedInterfaceOrientations、shouldAutorotate来控制。如果单一的控制画面那么只需要加在上面两个函数。如下:123456789- (BOOL)shouldAutorotate { return YES;}- (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskAll;}如果是含有.. 阅读全文
posted @ 2013-04-17 11:35 高笑228 阅读(220) 评论(0) 推荐(0)
摘要:选择一个CategoryAVAudioSessionCategoryAmbient或kAudioSessionCategory_AmbientSound——用于非以语音为主的应用,使用这个category的应用会随着静音键和屏幕关闭而静音。并且不会中止其它应用播放声音,可以和其它自带应用如iPod,safari等同时播放声音。AVAudioSessionCategorySoloAmbient或kAudioSessionCategory_SoloAmbientSound ——类似于AVAudioSessionCategoryAmbient不同之处在于它会中止其它应用播放声音。 这个categor 阅读全文
posted @ 2013-03-15 14:33 高笑228 阅读(15858) 评论(0) 推荐(0)
摘要:可以达到文字描一圈白边的效果继承UILabel以后重载drawTextInRect- (void)drawTextInRect:(CGRect)rect {CGSize shadowOffset = self.shadowOffset;UIColor *textColor = self.textColor;CGContextRef c = UIGraphicsGetCurrentContext();CGContextSetLineWidth(c, 1);CGContextSetLineJoin(c, kCGLineJoinRound);CGContextSetTextDrawingMode(c 阅读全文
posted @ 2013-03-11 10:22 高笑228 阅读(231) 评论(0) 推荐(0)
摘要:objective-c文件、文件夹操作123456789//如果"/Documents/Theme"路径不存在,则创建。 if(![[NSFileManagerdefaultManager]fileExistsAtPath:themePath]) { [[NSFileManagerdefaultManager]createDirectoryAtPath:themePathattributes:nil]; } //删除已存在的同名文件夹 if([[NSFileManagerdefaultManager]fileExistsAtPath:savePath]){ [[NSFile 阅读全文
posted @ 2013-02-21 17:56 高笑228 阅读(299) 评论(0) 推荐(0)
摘要:原文转自 http://www.rijiyuelei.me/2012/09/enum-and-string-conversion-in-objective-c/枚举类型的使用优势没啥好说的。但经常需要将它与字串进行转换方便显示或其它需求。在常见的方案中,多是先声明,然后在实现文件里创建一个映射表。这样带来的问题就是要分两个文件来管理,带来管理不方便不好。使用前还在确保映射表已经初始化。显然使用时还是有些许难受。如果全部改用宏来实现则会好管理很多,而且对于映射表可以采用惰性初始化原则,即只有访问到时才创建。enum DPodRecordType{ DPodRecordTypeA = ... 阅读全文
posted @ 2013-02-20 10:08 高笑228 阅读(11912) 评论(0) 推荐(0)
摘要:大家应该都比较清楚如果想要刷新一个UIView的话,调用它的setNeedsDisplay即可。问题是,当你调用了一个UIView的setNeedsDisplay之后,该UIView何时才得到刷新?经过调研发现,应该是在一个runloop的最后阶段刷新。什么是一个runloop呢?个人认为可以简单的理解为了一个事件的处理过程。例如用户点击屏幕是两个runloop。当用户按下的时候,...一系列处理->UIView的touchesBegan函数->一系列处理 这里是一个runloop当用户抬起的时候,...一系列处理->UIView的touchesEnd函数->一系列处理 阅读全文
posted @ 2013-02-02 13:11 高笑228 阅读(420) 评论(0) 推荐(0)
摘要:转自 :http://www.cnblogs.com/smileEvday/archive/2012/12/21/NSTimer.html NSTimer你真的会用了吗 看到这个标题,你可能会想NSTimer不就是计时器吗,谁不会用,不就是一个能够定时的完成任务的东西吗? 我想说你知道NSTimer会retain你添加调用方法的对象吗?你知道NSTimer是要加到runloop中才会起作用吗?你知道NSTimer会并不是准确的按照你指定的时间触发的吗?你知道NSTimer就算添加到runloop了也不一定会按照你想象中的那样执行吗? 如果上面提出的哪些问题,你并不全部了解,那么请细心的看... 阅读全文
posted @ 2013-01-30 10:58 高笑228 阅读(179) 评论(0) 推荐(0)
摘要:转自 http://alldunne.org/2011/09/how-to-pause-or-end-a-uiview-animation-via-the-calayer/-(void)pauseLayer:(CALayer*)layer{ CFTimeInterval paused_time = [layer convertTime:CACurrentMediaTime() fromLayer:nil]; layer.speed = 0.0; layer.timeOffset = paused_time; }-(void)resumeLayer:(CALayer*)layer{ ... 阅读全文
posted @ 2013-01-28 17:27 高笑228 阅读(226) 评论(0) 推荐(0)
摘要:转自http://www.devdiv.com/home.php?mod=space&uid=66974&do=blog&id=6472这些天一直在纠结这个问题:在后台有音乐播放时,我用AVAudioRecorder进行录音,后台音乐被无情的停止了,直到最近才解决!解决方法如下:首先,在开始录音之前,设置[[AVAudioSessionsharedInstance]setActive:YESerror:nil];[[AVAudioSessionsharedInstance]setCategory:AVAudioSessionCategoryPlayAndRecorder 阅读全文
posted @ 2013-01-28 10:33 高笑228 阅读(1392) 评论(0) 推荐(0)
摘要:本文转载自http://www.cocoachina.com/bbs/read.php?tid=31300一:确认网络环境3G/WIFI mm IOgl jUj3 'e.p 1. 添加源文件和framework "K*iGP Yf ?mEZm 开发Web等网络应用程序的时候,需要确认网络环境,连接情况等信息。如果没有处理它们,是不会通过Apple的审查的。 hS(<R!1,i Apple 的 例程 Reachability 中介绍了取得/检测网络状态的方法。要在应用程序程序中使用Reachability,首先要完成如下两部: 8IvI|$[t 阅读全文
posted @ 2012-11-29 11:38 高笑228 阅读(293) 评论(0) 推荐(0)
摘要:本文转载自 http://www.cnblogs.com/linyawen/archive/2012/06/09/2542784.htmlPresent ViewController Modally一、主要用途 弹出模态ViewController是IOS变成中很有用的一个技术,UIKit提供的一些专门用于模态显示的ViewController,如UIImagePickerController等。弹出模态ViewController主要使用于一下这几种情形: 1、收集用户输入信息 2、临时呈现一些内容 3、临时改变工作模式 4、相应设备方向变化(用于针对不同方向分别是想两个ViewC... 阅读全文
posted @ 2012-11-29 11:28 高笑228 阅读(215) 评论(0) 推荐(0)