在c++中我们可以多继承来实现代码复用和封装使程序更加简练.在objective-c中只能单继承,不能多继承,那么除了协议protocol之外,我们可以实现类似多继承的一个方法就是,分类(category,又称类别).类别可以不修改原来的类(父类),和派生类的情况下,为原有的类增加新的方法,但是分类不能增加实例变量. 格式(format): @interface class_name(category_name)<protocol,....> method _declaration; ....…
在c++中我们可以多继承来实现代码复用和封装使程序更加简练.在objective-c中只能单继承,不能多继承,那么除了协议protocol之外,我们可以实现类似多继承的一个方法就是,分类(category,又称类别).类别可以不修改原来的类(父类),和派生类的情况下,为原有的类增加新的方法,但是分类不能增加实例变量. 格式(format): @interface class_name(category_name)<protocol,....> method _declaration; ....…
本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本文继续上一篇随笔<从C#到Object C,循序渐进学习苹果开发(2)--Objective-C和C#的差异>,继续对比介绍它们两者之间的差异,以便我们从C#阵营过来的人员加深印象,深入了解Objective-C语言的特性.本篇随笔主要针对Objective-C里面的分类(category)和协议Protocal概念的理解…
在所有的移动开发平台数据持久化都是很重要的部分:在j2me中是rms或保存在应用程序的目录中,在symbian中可以保存在相应的磁盘目录中和数据库中.symbian中因为权限认证的原因,在3rd上大多数只能访问应用程序的private目录或其它系统共享目录.在iphone中,apple博采众长,提供了多种数据持久化的方法,下面笔者会逐个进行详细的讲解. iphone提供的数据持久化的方法,从数据保存的方式上讲可以分为三大部分:属性列表.对象归档.嵌入式数据库(SQLite3).其他方法. 一.属…
OC 中的category分类文件相当于 C#中的部分类:OC 中的protocol协议文件(本质是头文件)相当于 C#中的接口.今天就简单说明一下OC中的这两个文件. 由于视频中的Xcode版本低,导致了分类文件和协议文件没有找到,最后百度得知: 如图:Xcode 7.2版本中的category文件和protocol文件都归类到了Objective-C File 中   一.category文件: 作用:可以扩展自定义类,或者系统类.下面的实例,是扩展了NSString 类,在类中扩展了计算字…
protocol协议时为了补充Objective-C 只能单继承的缺陷而增加的一个新功能.Objective-C重所有的方法都是虚方法,所以在oc重也就没有关键字 virtual一说,有了协议可以补充 Objective-C单继承的缺陷,协议并不是一个真正的类,在协议的里面只声明方法不实现,并且在协议当中不能声明实例变量,如果一个类实现了某一个协议的方法,那么称折各类遵 循(遵守,采用)了这个协议,正式的协议在类中必须被实现,一个类可以实现多个协议,一个协议也可以被多个类实现, 格式 forma…
protocol协议时为了补充Objective-C 只能单继承的缺陷而增加的一个新功能.Objective-C重所有的方法都是虚方法,所以在oc重也就没有关键字 virtual一说,有了协议可以补充 Objective-C单继承的缺陷,协议并不是一个真正的类,在协议的里面只声明方法不实现,并且在协议当中不能声明实例变量,如果一个类实现了某一个协议的方法,那么称折各类遵 循(遵守,采用)了这个协议,正式的协议在类中必须被实现,一个类可以实现多个协议,一个协议也可以被多个类实现, 格式 forma…
1.各个子文件夹的作用        Classes:                    编写的大多代码都保存在这里,其中包括所有的Objective-C类,可以在Classes文件夹下创建一些子文件夹来组织代码.        Other Sources:                    包含除了Objective-C类之外的源代码文件,此文件夹包含下面两个文件                        Hello World_Prefix.pch:扩展名.pch表示"预编译的头…
2013-08-21 在Objective-C,包括int double float 等等再内的基础数据类型都不是一个类,所以就不能给它们发送消息,也就是说不能调用方法,那怎么办呢 ?Objective-C提供了一个 NSNumber 类来作为一个中转,可以将所有的普通数据类型转化为NSNumber类型,这样就符合Objective-C的消息机制了. NSNumber #import <Foundation/Foundation.h> int main (int argc, const cha…
新建一个single view 工程: 关闭ARC , 在.xib视图文件上拖放一个UIImageView  两个UIButton ,一个UISlider ,布局如图. 并为他们连线, UIImageView 和 UISlider 分别定义插座变量,两个 UIButton 分别 连接两个Action next和previous ,在为 UISlider 连接一个Action  事件. 再在.h 文件中声明两个实例变量.   NSInteger index ; NSMutableArray* ar…
json和xml的普及个人觉得是为了简化阅读难度,以及减轻网络负荷,json和xml 数据格式在格式化以后都是一种树状结构,可以树藤摸瓜的得到你想要的任何果子. 而不格式化的时候json和xml 又是一个普普通通的字符串,在网络通信的时候也只需要请求一次,而不用每次为得到木一个值而重复的请求服务器或者目标主机, json和xml 都采用 键 - 值 的形式来存放数据. xml 使用: <键> 值 </键> json 使用:  "键" : "值"…
使用GDataXML解析XML文档 在IOS平台上进行XML文档的解析有很多种方法,在SDK里面有自带的解析方法,但是大多情况下都倾向于用第三方的库,原因是解析效率更高.使用上更方便 这里主要介绍一下由Google提供的一种在IOS平台上进行XML解析的开源库GDataXML,可以到 http://code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/XMLSupport/下载源码,下载下来后进入文件夹找到XML…
- (IBAction)loadData:(id)sender { NSURL* url = [NSURL URLWithString:@"http://162.105.65.251:8080/service/downloadusernote?user_name=weishouqiang"]; NSURLRequest* request = [[NSURLRequest alloc] initWithURL:url]; NSURLConnection* conn = [[NSURLCo…
第一步:新建一个Single View工程: 第二步:新建好工程,关闭arc. 第三步:拖放一个Text Field 一个UIButton 和一个 UIWebView . Text Field 的title 属性设置为 http:// .UIButton 的title属性设置为 go . 布局如图: 第四步:为Text Field 和  UIWebView 连线,插座变量分别命名为  textUrl  和 webRequest.为UIButton 连线 .连接一个action事件(- (IBAc…
第一步:下载第三方库,点击 连接 下载, 第二部:准备数据库:按照连接&中博客的步骤实现数据库, 数据库的设计大致如下表: id        username             password         registertime realname            groupid        新建一个单视图工程, 关闭arc  (Automatic reference count)自动引用计数, 添加 sqlite3.dylib 类库的包含, 将准备好的第三方库FMDB 以…
SQLite  是一个轻量级的免费关系数据库.SQLite最初的设计目标是用于嵌入式系统,它占用资源非常少,在嵌入式设备中,只需要几百K的内存就够了,可以在(http://www.sqlite.org/docs.html)查看详细的文档. 第一步:在mac os上打开终端,打开finder在应用程序下, 应用程序 ->实用工具  ->终端. 打开之后如图所示: 第二步:创建数据库,使用命令 sqlite3 user.db , 在终端输入然后回车,然后再输入分号结束,这样就创建了一个没有数据表的…
第一步:新建一个单视图(single view)的工程, 命名为pickerTest,不要勾选下面两个选项,第一个是新版本里面的,第二个是单元测试,现在用不着. 点击next  ->creat之后,打开工具栏: 在下面的控件工具栏中往视图上拖放一个Picker View控件,一个UIButton控件,一个UILable控件,(所有在前端可以看得见的控件都继承自UIView) 修改UIButton的title属性,设置为click 然后点击分栏按钮,为控件连线(这种方式相对于手动去写,要快速很多)…
首先需要说明的是每个应用程序都是一个window,背景色为黑色.在window上可以跑多个view进行来回切换,下面就通过手动写代码来体现导航栏切换view的原理. 第一步,新建一个single view工程,然后再新建一个带xib文件的UIviewController. 程序结构如下图: 第二步,在cidpAppDelegate.m文件中修改- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOption…
所有的视图都继承自 UIViewController,都使用 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;来初始化视图,所以一般初始化的数据或者变量都是在这个方法中. 首先建一个single view 工程,然后再添加一个view. 结构如图: 单击单开 cidpViewController.xib 文件,在视图上面拖放一个UIbutton 和一个 UILable,并且在cidp…
NSDictionary(字典),NSDictionary类似于 .net中的parameter,l类似于java中的map. 通过唯一的key找到对应的值,一个key只能对应一个只,而多个key可以对应同一个值.NSDictionary 在初始化之后,就不可以再进行修改. 使用类方法创建NSDictionary对象. 初始化一个NSDictionary对象.使用+ (id)dictionaryWithObject:(id)object forKey:(id)key; NSDictionary*…
第一个字符串: //必须在字符串的前面加上@符号, NSString* str=@"shouqiang_Wei";//输出以%@输出. NSLog(@"%@",str); 结果:2013-08-21 14:06:22.963 NSNumber[611:707] shouqiang_Wei NSString 类原型: @interface NSString : NSObject <NSCopying, NSMutableCopying, NSCoding>…
协议是为了弥补Objective-c中类只能单继承的缺陷,在Objective-c2.0之前当一个类遵循一个协议的时候,必须在类中实现协议的所有方法,在Objective-c2.0之后协议中的方法就有关键字来区别那些方法是必须实现的,那些方法不是必须实现的,默认是不必须实现的@optional 修饰的方法是不必须实现的,@required修饰的方法必须实现, 一般用的比较多的代理委托有UITextFieldDelegate,UITableViewDataSource,UITableViewDel…
在x-code Version 4.3.2 (4E2002)下编译: 在 Controller. m 文件下添加如下实例方法即可: - (void)viewDidUnload { [super viewDidUnload]; // Release any retained subviews of the main view. } 然后将UITextField和这个方法关联起来,这里要注意的是,关联的是 Did End On Exit 事件.千万不要关联成Editing Did End.…
第一步:新建一个工程,在 .h文件中坐如下声明: #import <UIKit/UIKit.h> @interface MyButtonViewController : UIViewController{ UIButton* myButton; } @property (nonatomic,retain)UIButton *myButton; 在. m 文件中 #import "MyButtonViewController.h" @interface MyButtonVie…
UIAlertView使用详解 Ios中为我们提供了一个用来弹出提示框的类 UIAlertView,他类似于javascript中的alert 和c#中的MessageBox(); UIAlertView 继承自 UIView (@interface UIAlertView : UIView ) 一.简单的初始化一个UIAlertView 对象. UIAlertView* alert = [[UIAlertView alloc] init]; 激活 alert ,让它显示. [alert sho…
SQLite  是一个轻量级的免费关系数据库.SQLite最初的设计目标是用于嵌入式系统,它占用资源非常少,在嵌入式设备中,只需要几百K的内存就够了,可以在(http://www.sqlite.org/docs.html)查看详细的文档. 第一步:在mac os上打开终端,打开finder在应用程序下, 应用程序 ->实用工具  ->终端. 打开之后如图所示: 第二步:创建数据库,使用命令 sqlite3 user.db , 在终端输入然后回车,然后再输入分号结束,这样就创建了一个没有数据表的…
命名规范:http://bukkake.iteye.com/blog/695492  点击打开链接…
UIAlertView使用详解 Ios中为我们提供了一个用来弹出提示框的类 UIAlertView,他类似于javascript中的alert 和c#中的MessageBox(); UIAlertView 继承自 UIView (@interface UIAlertView : UIView ) 一.简单的初始化一个UIAlertView 对象. UIAlertView* alert = [[UIAlertView alloc] init]; 激活 alert ,让它显示. [alert sho…
转CSDN jilongliang : 首先,对于一个完全没有mac开发经验,甚至从没摸过苹果系统的开发人员来说,首先就是要熟悉apple的那一套开发框架(含开发环境IDE.开发框架uikit,还有开发语言objective-c).对于有一定编程经验的人来说,学习objective-c可能1-2周时间就够了,但是,要真正用好这门语言,并且最大限度地利用这门语言来提高开发效率的话,那就需要时日了.这里推荐两本书<objective-c基础教程>和<iphone开发基础教程>,这两本都…
iPhone开发常问的十个问题 前言 今天去stackoverflow.com上看了一下iPhone标签下排名最高的10个问题,将它们整理出来,希望这些常见问题能帮到一些iPhone开发的初学者.本来想把答案也翻译过来的,后来发现答案资料通常都比较复杂,翻译起来太麻烦.所以大家还是看英文的答案吧,我只顺带用中文总结一下答案. 问题一: 有哪些iPhone开发和Objective-C的入门资料 这个确实是最常问的问题了.对于我个人来说,入门时所看的资料主要是<From C++ to Objecti…