对于一门语言得学习,个人觉得最主要得就是其语法格式和那些关键字。
因为对于基本现在大多数得语言,每种语言都是一种符合人思维得方式来与计算机交流。
因此,其实每种语言中定义或是封装好得基础类和类库,其实都是很相似得。
比如 int,double几种基本类型,String,数组,集合以及字典数据类型。
因此你在编程时比如你想以字符串形式和计算机交流,那你很容易就能想到在C中可以使用String这个类,在java中也是Stirng
(当然,前提是你至少有一种同抽象级别得语言基础),那OC呢,也有这样一个类吧,不过是某种原因加了个前缀。
那么对于类中定义函数得使用,可能不同语言就有所不同了,首先是函数名(这个其实基本不担心,现在得ide工具提示太强悍了,真不行你可以文档),
其次就是函数得调用格式,我这简单理解为语法格式得一种。
一:以一个最简单得例子来看OC的语法格式。
1.首先一个类得组成,这个知道C的基本没什么说的 .h和.m文件。一个是头文件,一个是实体文件。
OC中一般说是申明文件和实现文件
简单来说,h文件就是整体对一个类得描述,m文件是对h文件中申明描述得实现
//
// NonoAppDelegate.h
// MultiViews
//
// Created by Nono on 12-4-19.
// Copyright (c) 2012年 NonoWithLilith. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface NonoAppDelegate : UIResponder <UIApplicationDelegate,UITabBarControllerDelegate>
{
UITabBarController *tabBarController;
UIWindow *window;
}
@property (retain, nonatomic)IBOutlet UIWindow *window;
@property (retain, nonatomic)IBOutlet UITabBarController *tabBarController;
@end
2.先看头文件得格式和申明
#import这个关键字没啥说的,java中叫导入。就是引入你当前类所要用到得依赖库和类。
@interface 申明开头关键字。 后面紧跟的是定义额类名 :后面的是继承得类 UIResponder ,< xxxxxxxxx>有点类似于java中得接口,当然 OC中有个
更加准确得定义就叫协议 ,<>放协议类。 整个申明最后都以@end结束。
{ }里面就是常说得申明成员变量。
@property 属性,我暂时理解为也有点成员变量的意思。 这个属性更多是和后面得m文件中的的synthesize关键字有密切联系。
(retain ,nonatomic)属性的一些参数。这个具体可以去看文档,估计C语言额同学应该不陌生,我不是很明确每个参数比较适合得场合。
IBOutlet 关键字,这个是和nib文件息息相关得,只要在nib文件中需要关联的对象,用这个修饰(比如我nib文件中有个window控件,要和代码中这个对象联系起来
,那么就用这个关键字申明),申明完后会看到这段代码最左端有个空心圆圈,当你和nib文件中控件关联后,就实心圆圈了。
//
// NonoAppDelegate.m
// MultiViews
//
// Created by Nono on 12-4-19.
// Copyright (c) 2012年 NonoWithLilith. All rights reserved.
//
#import "NonoAppDelegate.h"
@implementation NonoAppDelegate
@synthesize window;
@synthesize tabBarController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
// self.window.backgroundColor = [UIColor whiteColor];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}
@end
3.实现文件。implmentationxxx @end。这个不用说了吧。
@synthesize 这个关键字有点意思。这个关键字得表示法后,编译器就自动隐式生成一个setter和getter,OC上得说法来说就是自动实现一个
存取方式。然后我们知道,oc语言这个习惯方式,一个方法和属性在使用前都必须有个申明,就是 h和m文件这个构造啦。那对于h头文件中property
我们是不是可以理解,这是对编译器得一个申明,我将在实现文件中实现这个对象得存取方法,而在m实现时只不过我们一个关键字后让编译器去做了这个事。
4.例子最后说下OC中对象得方法得调用
比如在java中我要调用 a对象的functionA()方法,直接用得点表示法 a.functionA();
在OC中有点奇特表示成 [a functionA],如果方法呀传参数,那么紧跟着 functionA :obj
二:一些关键字和部分理解点(以下纯粹是个人觉得OC得一些变异点和需要大致理解得一些事项)
1.NS前缀。OC得大部分类都有这个前缀。要理解缘由,可以去看OC得历史。
2.Bool 这个数据类型有点改动,在常见得语言中都是true和false,OC是YES和NO。
3.@protocol关键字,这个是申明协议类时,和@end连用,看字面意识就知道了。
对于协议我们上面提到,有点类似于java中得接口,当众所周知,接口中申明得方法必须全部实现。java中当然对这样一个强自行手段有引申出
抽象abstract这个类来对这种强制手段一个缓和,OC中则直接在协议类中申明了这一点,对于有些方法不需要强制实现,可选得,用了optional。
这个你可以具体随意跳入哟个协议类看就好了,相信在以后更多代码接触后会有个更深得理解。
4.对于刚接触oc语言得人可能有个小疑惑得类型 (id),这个可以理解为java语言中得泛型
OC得基础语法其实不多,我基本看的是绿柚子那本 OC基础教程。说实话,如果你有面向对象基础,那基本半本你就跳过去了,如果你有C基础,那内存那些
篇章你也可以跳过去了。因为书不厚,我基本是花了周末看了下,对于入门来说,还算本不错的书。适合我们新入门的菜鸟。
对于OC的基础教程文章网上也很多,基本就是带你过一遍类的API,比如String啊,集合啊,数组啊等等。
我觉得以后直接在编写ios例子时引入然后介绍即可,本人也懒。有这方面意向的可以直接去网上找,敲一下熟悉下其实也是不错的。
看完绿柚子,OC的基础 暂时就这些。因为我只做了这么点笔记。对于面向对象和内存,类别,这个有时间我在去看下然后再写下分享。
-----------2012.04.18
分享到:
相关推荐
iOS 7 Programming Fundamentals: Objective-C, Xcode, and Cocoa Basics by Matt Neuburg (Author) Publisher: O’Reilly Media (October 2013) Language: English ISBN-10: 1491945575 ISBN-13: 978-...
资源名称:iOS开发系列视频教程:Objective-C 资源目录: 【】无限互联iOS开发视频教程-Objective-C部分(第一部分) 【】无限互联iOS开发视频教程-Objective-C部分(第七部分) 【】无限...
Objective-C 基础语法学习项目
苹果iOS开发中文电子书推荐:3--Objective-C基础中文教程PART1
苹果iOS开发中文电子书推荐:3--Objective-C基础中文教程PART2
苹果iOS开发中文电子书推荐:3--Objective-C基础中文教程PART3
通过学习Objective-C的基本语法、类和对象、控制流程和方法等内容,你将能够编写简单的Objective-C程序并逐渐掌握更复杂的概念。继续学习和实践,你将能够开发各种类型的应用程序,并为用户提供出色的体验。祝你在...
iOS Toast提示框 (Objective-C)
最全最新版 Objective-C编程之道IOS设计模式解析.pdf
Objective-C高级编程 iOS与OS X多线程和内存管理.pdf
本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...
iOS开发之Objective-C语法快速参考(PDF文档).
人民邮电出版社《Objective-C基础教程》(含源代码) 影印版的PDF文件+原书附带的代码,特别适合学习iPhone,iPad入门开发学习~
《Objective-C 程序设计(第4版)》作者假设读者没有面向对象程序语言或者C语言(Objective-C基础)编程经验,因此,初学者和有经验的程序员都可以使用这本《Objective-C 程序设计(第4版)》学习Objective-C。...
本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...
IOS应用源码——Objective-C基础教程 随书源码.zip
Objective-C iOS StoreKit 原生内购订阅代码封装,语言是Objective-C,内含demo,可以二次封装给其他开发工具使用. 支持Unity3D,cocos,xamarin...等开发工具进行二次封装使用.
《Objective-C基础教程》结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的...
《Objective-C编程之道ios设计模式解析》电子书讲述了ios设计中常用的设计模式,希望可以帮助大家!
资源名称:iOS应用开发之Objective-C视频讲解(全套) 资源目录: 【】1.ios预科班_oc_helloword以及数据类型 【】2.ios预科班_oc_数据类型转换以及类方法变量属性 【】3.ios预科班_oc_内存...