随笔分类 -  Objective-C

1 2 下一页

数据的持久化存储--归档
摘要:1、对象归档将各种类型的对象存储到文件中,而不仅仅是字符串、数组和字典类型,有一种更灵活的方法:就是利用NSKeyedAarchiver类创建带键(keyed)的归档文件来完成.归档是指将对象序列化,这样可以轻松将复杂的对象写入文件,然后再从中读取它们, 只要在类中实现的每个属性都是基本数据类型(如int或float),或都是符合NSCoding协议的某个类的实例,你就可以对对象进行完整归档.实现NSCoding协议NSCoding是一个可以由你自行实现的协议,通过扩展你的数据类来支持encode和decode功能就可以了.它们的任务是把数据写到数据缓存,最后持久保存到磁盘中.//NSCodi 阅读全文

posted @ 2013-12-16 10:34 IOS开发者 阅读(360) 评论(0) 推荐(0)

oc中将CGRect、CGSize、CGPoint等结构体转换为字符串
摘要:CGRect rect = CGRectMake(160, 230, 200, 200); CGPoint point = CGPointMake(20, 20); CGSize size = CGSizeMake(20, 20); NSString *str = NSStringFromCGRect(rect); NSString *str1 = NSStringFromCGSize(size); NSString *str3 = NSStringFromCGPoint(point); NSMutableArray *array = [[NSM... 阅读全文

posted @ 2013-12-09 23:40 IOS开发者 阅读(948) 评论(0) 推荐(0)

Xcode快速排错
摘要:Xcode快速排错分类:ios技术2012-10-12 08:25847人阅读评论(0)收藏举报xcode测试音乐扩展1,模拟器运行完全没问题,真机运行失败。有时候我们在模拟器上运行程序时,不会发现任何问题,但当我们放到真机上测试时,就会发生错误,此时是什么原因呢?以我的发现可能是下面的原因,1,因为真机测试的时候,是识别大小写的,所以首先检查你程序中的资源(图片,音乐……)的扩展名是小写的,然而在代码中你写成了大写,比如有一张图片,在程序中是test.png,然而你在代码中却写成了test.PNG。如果你改正确了,那么恭喜你。如果还是不行,确定不是这方面原因了,那么……2,未完待续……2,C 阅读全文

posted @ 2013-12-09 10:37 IOS开发者 阅读(398) 评论(0) 推荐(0)

IOS版本判断
摘要:-(void)getIOSVersion{//#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 50000 //此方法和编译器相关//quanju.iOSVersion=1;//#endiffloat version = [[[UIDevice currentDevice] systemVersion] floatValue]; if (version >= 5.0) { quanju.iOSVersion=1;//定义全局变量标记ios版本} }-(void)getIOSModel{CGSizesizeToRequest;if([[[UIDevicec 阅读全文

posted @ 2013-12-08 22:57 IOS开发者 阅读(453) 评论(0) 推荐(0)

oc 中随机数的用法(arc4random() 、random()、CCRANDOM_0_1()
摘要:oc 中随机数的用法(arc4random() 、random()、CCRANDOM_0_1()1)、arc4random() 比较精确不需要生成随即种子 使用方法 : 通过arc4random() 获取0到x-1之间的整数的代码如下: intvalue=arc4random()%x; 获取1到x之间的整数的代码如下: intvalue=(arc4random()%x)+1; 2)、CCRANDOM_0_1() cocos2d中使用 ,范围是[0,1] 使用方法: float random = CCRANDOM_0_1() * 5; //[0,5] CCRANDOM_0_1() 取值范围是[0 阅读全文

posted @ 2013-12-03 21:23 IOS开发者 阅读(532) 评论(0) 推荐(0)

UIPopoverController
摘要:if (popOver == nil) { popOver = [[UIPopoverControlleralloc] initWithContentViewController:viewVC]; } popOver.popoverContentSize = CGSizeMake(200, 200); [popOverpresentPopoverFromBarButtonItem:self.navigationItem.rightBarButtonItempermittedArrowDirections:UIPopoverArrowDirectionUpanimated:YES]... 阅读全文

posted @ 2013-12-03 14:16 IOS开发者 阅读(326) 评论(0) 推荐(0)

IOS-- UIView中的坐标转换
摘要:IOS-- UIView中的坐标转换//将像素point由point所在视图转换到目标视图view中,返回在目标视图view中的像素值- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view;//将像素point从view中转换到当前视图中,返回在当前视图中的像素值- (CGPoint)convertPoint:(CGPoint)point fromView:(UIView *)view;//将rect由rect所在视图转换到目标视图view中,返回在目标视图view中的rect- (CGRect)convertRect:(CGR 阅读全文

posted @ 2013-12-03 09:22 IOS开发者 阅读(277) 评论(0) 推荐(0)

json
摘要:/*有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSON格式化校验(点击打开链接)。此网站不仅可以检测Json代码中的错误,而且可以以视图形式显示json中的数据内容,很是方便。从IOS5开始,APPLE提供了对json的原生支持(NSJSONSerialization),但是为了兼容以前的ios版本,可以使用第三方库来解析Json。json的格式JSON建构有两种结构: 1. “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),记录(record),结构. 阅读全文

posted @ 2013-11-27 01:08 IOS开发者 阅读(421) 评论(0) 推荐(0)

Core Data实例
摘要:#import #import @interface CHViewController : UIViewController@property (retain, nonatomic) IBOutletUITextField *nameTextFiled;@property (retain, nonatomic) IBOutletUITextField *ageTextField;@property (retain, nonatomic) IBOutletUITextField *idNUmberTextField;@property (retain, nonatomic) IBOutletUI 阅读全文

posted @ 2013-11-27 00:54 IOS开发者 阅读(674) 评论(0) 推荐(0)

KVO
摘要:/*KVO 键值观察对象和对象之间传递消息一,概述KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。二,使用方法系统框架已经支持KVO,所以程序员在使用的时候非常简单。1. 注册,指定被观察者的属性,2. 实现回调方法3. 移除观察*///person类#import #import "BankCount.h"@interface Person : NSObject{ BankCount *aBankCount;}- (vo 阅读全文

posted @ 2013-11-26 01:01 IOS开发者 阅读(266) 评论(0) 推荐(0)

KVC
摘要:/*KVCKVC,即:Key-value coding,它是一种使用字符串标识符,间接访问对象属性的机制,它是很多技术的基础。以下代码示例中首先定义了两个类:一个PlayItem(当前正在播放) 有name和price两个属性一个PlayList(播放列表) 有name、number、currentItem、itemList四个属性*///示例类在main函数中测试#import #import "PlayList.h"int main(int argc, const char * argv[]){ @autoreleasepool { //测试KVC PlayList * 阅读全文

posted @ 2013-11-26 00:59 IOS开发者 阅读(283) 评论(0) 推荐(0)

OC和C++的区别
摘要:C++语言特点: 1.在C语言的基础上进行扩充和完善,使C++兼容了C语言的面向过程特点,又成为了一种面向对象的程序设计语言; 2.可以使用抽象数据类型进行基于对象的编程; 3.可以使用多继承、多态进行面向对象的编程; 4.可以担负起以模版为特征的泛型化编程。OC语言特点: 1.Objecive-C属于Smalltalk学派,其面向对象与C++面向对象编程力的Simula 67(一种早期面向对象语言)学派不同; 2.Objective-C 是ANSI C的超集,扩展了C 语言使它具备面向对象设计的能力,例如类、消息‘继承;同时在Objective-C的代码中可以有C和C++语句,它可以调用C的 阅读全文

posted @ 2013-11-25 22:39 IOS开发者 阅读(1566) 评论(0) 推荐(0)

同步 和 异步网络请求
摘要://同步请求可以一次性的接收所有数据 但是在主线程中完成 会阻塞主线程-(void)sendRequestTongbu{ //创建一个NSSring类型的URL连接字符串 NSString *urlString = @"http://www.apple.com"; //转换成NSURL类型 NSURL *url = [NSURL URLWithString:urlString]; //实例化一个request,把URL对象赋值到NSURLRequest对象中 NSURLRequest *request = [NSURLRequest requestWithURL:url]; 阅读全文

posted @ 2013-11-25 22:34 IOS开发者 阅读(198) 评论(0) 推荐(0)

OC和C++的混用2
摘要:苹果的Objective-C编译器允许用户在同一个源文件里自由地混合使用C++和Objective-C,混编后的语言叫Objective-C++。有了它,你就可以在Objective-C应用程序中使用已有的C++类库。Objective-C和C++混编的要点 在 Objective-C++中,可以用C++代码调用方法也可以从Objective-C调用方法。在这两种语言里对象都是指针,可以在任何地方使用。例 如,C++类可以使用Objective-C对象的指针作为数据成员,Objective-C类也可以有C++对象指针做实例变量。下例说明了这一点。 注意:Xcode需要源文件以".mm 阅读全文

posted @ 2013-11-25 21:39 IOS开发者 阅读(874) 评论(0) 推荐(0)

OC和C++的混用1
摘要://Objective-C类/*在混用之前需要做一步非常重要的事:不是代码而是编译器选项,在做混合编译之前一定要把编译器的Compile Sources As选项改为Objective C++。修改方法:target->BuildSetting->Apple LLVM compiler 4.0 - Language选项底下的Compile Sources As修改为:Objective C++*/#import class CPlusPlusClass;//这里不能使用@class指令,我猜测的原因可能是:后面的类是c++类,若要引用oc类肯定是用@class无疑@interfac 阅读全文

posted @ 2013-11-25 21:28 IOS开发者 阅读(456) 评论(0) 推荐(0)

@private@protected@public@package
摘要:@private@protected@public@package为了强制一个对象隐藏其数据,编译器限制实例变量范围以限制其在程序中的可见性但是为了提供灵活性,苹果也让开发者显式设置范围(四选一)DirectiveMeaning@private实例变量只能被本类自身访问@protected实例变量只能被声明它的类访问实例变量能被声明它的类和子类访问,所有没有显式制定范围的实例变量都是@public实例变量可以被在任何地方访问。@package使用modern运行时,一个@package实例变量在实现这个类的可执行文件镜像中实际上是@public的,但是在外面就是@private【runtime 阅读全文

posted @ 2013-11-24 23:31 IOS开发者 阅读(1709) 评论(0) 推荐(0)

代码块(block)的使用
摘要:Objective-C语法之代码块(block)的使用代码块本质上是和其他变量类似。不同的是,代码块存储的数据是一个函数体。使用代码块是,你可以像调用其他标准函数一样,传入参数数,并得到返回值。脱字符(^)是块的语法标记。按照我们熟悉的参数语法规约所定义的返回值以及块的主体(也就是可以执行的代码)。下图是如何把块变量赋值给一个变量的语法讲解:按照调用函数的方式调用块对象变量就可以了:int result = myBlock(4); // result是 28Ios4已经直接支持blocks,很有必要学习一下。在ios,blocks是对象,它封装了一段代码,这段代码可以在任何时候执行。Block 阅读全文

posted @ 2013-11-24 23:24 IOS开发者 阅读(404) 评论(0) 推荐(1)

类扩展Extension
摘要:延展(Extension):在本类里声明私有方法。1:延展定义的方法是在implemetation中。2:声明的方法是私有方法。3:延展中声明的方法可以不实现。#import"Host.h"//延展的声明@interfaceHost()-(BOOL)hasHouse;@end@implementationHost//其实就是我们常见的在累的实现部分的上边还有一个类的接口,这里就是延展,在这里声明的方法,可以不去实现,而且是私有方法 阅读全文

posted @ 2013-11-24 23:04 IOS开发者 阅读(439) 评论(0) 推荐(0)

协议与非正式协议
摘要://协议#import //定义一个协议类@protocol mDelegate @required- (void)thisIsADelegateMethodYouMustAchive;@optional- (void)thisIsADelegateMethodYouCanNotAchive;@end@interface Delegate : NSObject@property (nonatomic, retain) iddelegate;- (void)thisIsAMethodToShowHowToUseDelegate;@end#import "Delegate.h" 阅读全文

posted @ 2013-11-24 22:51 IOS开发者 阅读(1172) 评论(0) 推荐(0)

分类
摘要://原始类#import @interface Category : NSObject@property (nonatomic ,retain) NSString *test;- (void)thisIsANowClassMethod;@end#import "Category.h"@implementation Category- (void)thisIsANowClassMethod{ NSLog(@"This is a now Class method");}@end//分类的接口部分#import "Category.h"@i 阅读全文

posted @ 2013-11-24 22:03 IOS开发者 阅读(208) 评论(0) 推荐(0)

1 2 下一页