1、方法调用基本语法
[object method];
[object methodWithInput:input];
方法可以有返回值:
output = [object methodWithOutput];
output = [object methodWithInputAndOutput:input];
还可以调用累方法:
id myStr = [NSString string];
id类型意味着myStr可以是任意类型的对象。
或者:NSString* myStr = [NSString string];
注意:在对象类型的右边有一个星号(*),在Objective-C中所有的对象变量都是指针类型,id类型已经被预定义为指针类型,所以不需要加一个星号。
2、方法嵌套调用
在许多编程语言中,嵌套的方法或函数是这样调用的:
function1(function2()); //function2()的返回值作为参数传递给function1()。
在Objective-C中,嵌套的方法或函数调用:
[NSString stingWithFormat:[prefs format]];
要尽量避免在一行语句中进行两层以上的嵌套,这样会使代码的可读性降低。
3、多个输入参数的方法定义
在Objective-C中,一个方法的名字可以被拆分成几段:
- (BOOL) writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;
你可以这样调用这个方法:
BOOL result = [myDate writeToFile:@"/tmp/log.txt" atomically:NO];
这些不是命名参数。在运行中,该方法的名字实际上是:writeToFile:atomically:
4、点操作符
在Mac OS X 10.5中,Objective-C 2.0新增了点操作符的设置器(setter)和获取器(getter):
user.name = @"Mike"; //[user setName:@"Mike"];
output = user.name; //output = [user name];
区别:点语法只能使用在设置器(setter)和获取器(getter)上,而不能用于普通方法!
5、在Nil上调用方法
在Objective-C中,nil对象的作用等同于其他语言的NULL指针。
不同的地方在于,在nil上调用方法不会导致程序崩溃或抛出异常。
6、类的创建
在Objective-C语法中,一个类通常分为两部分:类的接口(头文件)和类的实现。
类的接口(interface)通常存放在类似ClassName.h的文件中,在这里我们定义实例变量和公用方法(public)。
类的实现存放在ClassName.m这样的文件中,它实现了接口中定义的方法。通常还可以定义外面不能访问的私有方法(private)。
User.h
--------------------
#import <Cocoa/Cocoa.h>
@interface User : NSObject
{
NSString* username;
NSString* password;
}
- (NSString*) username;
- (NSString*) password;
- (void) setUsername:(NSString*) input;
- (void) setPassword:(NSString*) input;
@end
User.m
--------------------
#import "User.h"
@implemention User
- (NSString*) username
{
return username;
}
- (NSString*) password
{
return password;
}
- (void) setUsername:(NSString*) input
{
[username autorelease];
username = [input retain];
}
- (void) setPassword:(NSString*) input
{
[password autorelease];
password = [input retain];
}
@end
在Objective-C中,get这个词有着特殊含义,获取器(getter)是不带get前缀的。方法前面的减号(-)表示这是一个实例方法,如果方法名前面是个加号(+),表示这是一个类方法。
释放一个对象有两种方法:release和autorelease。标准的release会立即释放对象的引用,autorelease直到当前方法结束才会释放(除非你添加自定义的代码来明确的改变它)。
7、类目(Category)
类目是Objective-C中最有用的一个特性。类目允许你为一个已存在的类添加一些方法,而不用子类化该类,也不需要你了解该类的实现细节。
例如:我想给NSString添加一个方法,判断它是不是一个URL,写法如下:
NSString-NSStringHelper.h
-------------------------------
#import <Cocoa/Cocoa.h>
@interface NSString (NSStringHelper)
- (BOOL) isURL;
@end
这很像一个类的声明,不同的地方在于后面没有列出父类,并且在括号里写了类目的名字。
类目的名字可以随便取,但最好能表达出你在类目中包含的方法所要做的事。
#import "NSString-NSStringHelper.h"
@implemention NSString (NSStringHelper)
- (BOOL) isURL
{
if ([self hasPrefix:@"http://"])
return YES;
else
return NO;
}
@end
现在你可以使用NSString的这个方法了:
NSString* str1 = @"http://www.iteye.com";
NSString* str2 = @"HelloWorld";
if ([str1 isURL])
NSLog(@"str1 is a URL.");
if ([str2 is URL])
NSLog(@"str2 is a URL");
内容更新中。。。。。
分享到:
相关推荐
这儿的运行时系统扮演的角色类似于Objective-C语言的操作系统,Objective-C基于该系统来工作。本文档将具体介绍NSObject类以及Objective-C程序是如何和运行时系统交互的。特别地,本文档还给出来怎样在运行时动态地加
C语言主要知识点巩固(学习Objective-C 的前提),PPT格式。
Objective-C语言的许多决策可以在编译和运行时执行。只要有可能,它是动态的。这意味着Objective-C语言不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。Runtime系统是一种用于Objective-C语言的操作系统...
《objective-c程序设计》通过大量的实例系统地介绍了objective-c语言的基本概念、语法规则、框架、类库及开发环境。读者在阅读《objective-c程序设计》后,可以掌握objective-c语言的基本内容,并进行实际的iphone/...
希望这个简单的Objective-C语言教程能够为你提供一个入门的起点。Objective-C是一种面向对象的编程语言,广泛应用于Mac OS和iOS开发。通过学习Objective-C的基本语法、类和对象、控制流程和方法等内容,你将能够编写...
《Objective-C 程序设计(第4版)》详细介绍了Objective-C和苹果iOS、Mac平台面向对象程序编程的知识。《Objective-C 程序设计(第4版)》作者假设读者没有面向对象程序语言或者C语言(Objective-C基础)编程经验,...
用Objective-C语言实现了各种设计模式,收集各种例子,方便大家学习和普及设计模式。.zip用Objective-C语言实现了各种设计模式,收集各种例子,方便大家学习和普及设计模式。.zip用Objective-C语言实现了各种设计...
本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...
Amazon超级畅销书,好评如潮,全面解读Objective-C语言及Cocoa特性,用最通俗的语言阐释深奥的知识。 Objective-C是扩展C的面向对象编程语言,也是iPhone开发用到的主要语言。 本书结合理论知识与示例程序,全面...
Objective-C 是一种通用、面向对象的编程语言,广泛应用于 macOS 和 iOS 等苹果平台的开发中。它是 C 语言的超集,结合了 Smalltalk 式的消息传递机制和 C++ 的特性。Objective-C 是苹果公司采用的主要编程语言之一...
在windows系统下搭建Objective-C开发环境,由于公司要做iphone开发,个人学习objc(Objective-C)语法,所以在windows7下搭建了一个objc开发环境,现把自己整理的帮助文档拿来与大家分享,希望能对大家有所帮助。...
elcome to Learn Objective- C on the Mac! This book is designed to teach you the basics of the Objective- C language. Objective- C is a superset of C and is the language used by many (if not most) ...
本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...
这是一个基于Objective-C语言的基础案例集。旨在用于给初学者快速了解Objective-C语言的语法。.zip
Objective-C高级编程 iOS与OS X多线程和内存管理.pdf
资源里面包含Objective-C 2.0程序设计 原书中文版第2版及代码,还包含Effective Objective-C 2.0英文版完整的电子书
全书共分为四大部分:第一部分全面讲解了Objective-C语言的基础知识,包括类、对象、方法、数据类型、表达式、程序结构、继承、多态、动态类型和动态绑定、函数、数组、结构和指针等;第二部分详细阐述了Foundation...