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");
内容更新中。。。。。
分享到:
相关推荐
在掌握了这些C语言基础知识后,你将更好地理解和学习Objective-C,因为Objective-C是在C语言的基础上扩展的面向对象编程语言,它保留了C的大部分语法,并引入了类、消息传递等面向对象特性。因此,牢固的C语言基础...
Objective-C语言入门教程&深入浅出,理论实践相结合 Objective-C语言入门教程&深入浅出,理论实践相结合 Objective-C语言入门教程&深入浅出,理论实践相结合 Objective-C语言入门教程&深入浅出,理论实践相结合 ...
通过以上九讲的学习,你将全面掌握Objective-C的基础知识,为进行实际的iOS和macOS应用开发打下坚实的基础。在学习过程中,建议结合实际编程练习,以加深理解并提升技能。同时,持续关注苹果的开发文档和技术更新,...
综上所述,本教程覆盖了Objective-C编程语言的基础知识点,不仅包括语法和结构,还包括与C语言的兼容性、内存管理机制、面向对象编程的核心概念、以及如何在不同操作系统平台上进行开发的介绍。通过这些内容的学习,...
### 在Windows下搭建Objective-C开发环境 随着移动应用开发的普及,越来越多的开发者开始尝试不同的编程语言和技术栈。尽管Objective-C主要与Apple的平台(如iOS和macOS)相关联,但有时候,出于某些原因(比如团队...
Objective-C语言的许多决策可以在编译和运行时执行。只要有可能,它是动态的。这意味着Objective-C语言不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。Runtime系统是一种用于Objective-C语言的操作系统...
### Objective-C 2.0 运行时系统编程指南 #### 概述 Objective-C是一种面向对象的编程语言,它以其独特的动态性而闻名。这种动态性体现在它能够尽可能地将决策过程推迟到运行时执行,而不是在编译或链接阶段。因此...
《Objective-C高级编程:iOS与OS X多线程和内存管理》是一本深入探讨Apple平台开发中的关键技术的书籍。本书主要围绕Objective-C语言在iOS和OS X操作系统上的应用,特别是针对多线程和内存管理这两个核心主题进行...
1. **Objective-C基础**:Objective-C是在C语言基础上扩展的,因此,理解C语言的基本语法是必要的。Objective-C添加了消息传递机制、类和协议等面向对象特性。 2. **消息传递**:Objective-C中的对象通过发送消息来...
Objective-C是基于C语言的,主要用于构建iOS和macOS应用程序,而Objective-C++则是Objective-C的一个扩展,它引入了C++的特性,使得开发者可以同时利用Objective-C的动态特性和C++的面向对象编程能力。 ### ...
希望这个简单的Objective-C语言教程能够为你提供一个入门的起点。Objective-C是一种面向对象的编程语言,广泛应用于Mac OS和iOS开发。通过学习Objective-C的基本语法、类和对象、控制流程和方法等内容,你将能够编写...
1. **Objective-C基础**:Objective-C是在C语言基础上扩展的,因此它包含了C的所有特性。书中会讲解基本的数据类型、控制结构、函数和指针等基础知识,同时介绍Objective-C特有的动态类型和消息传递机制。 2. **...
《Objective-C 程序设计(第4版)》详细介绍了Objective-C和苹果iOS、Mac平台面向对象程序编程的知识。《Objective-C 程序设计(第4版)》作者假设读者没有面向对象程序语言或者C语言(Objective-C基础)编程经验,...
《Objective-C基础教程》是一本面向初学者的编程书籍,主要涵盖了Objective-C语言的基本概念、语法和编程实践,尤其适合那些想要踏入iOS应用开发领域的学习者。Objective-C是Apple公司开发的面向对象的编程语言,它...
《Objective-C 2.0程序设计》和《Effective Objective-C 2.0》两本书将深入讲解以上知识点,并提供实践示例,帮助读者更好地理解和应用Objective-C 2.0。通过学习这些内容,开发者能够熟练地构建高效、稳定、用户...
用Objective-C语言实现了各种设计模式,收集各种例子,方便大家学习和普及设计模式。.zip用Objective-C语言实现了各种设计模式,收集各种例子,方便大家学习和普及设计模式。.zip用Objective-C语言实现了各种设计...
Objective-C语法的基石是C语言的语法结构,这意味着所有的C语言代码都可以在Objective-C中直接使用。但是,Objective-C在C的基础上新增了消息传递机制,这是它与C语言的一个重要区别。在Objective-C中,方法调用是...
这个压缩包包含两个关于Objective-C的学习资源:"Programming In Objective-C.chm" 和 "Programming in Objective-C.2.0 中文版.pdf"。这两个文件分别以CHM(Microsoft帮助文档格式)和PDF(便携式文档格式)呈现,...
在Objective-C中,这些基础知识仍然适用,但Objective-C引入了面向对象的特性,如类、对象、继承、多态和消息传递。 1. 类与对象:Objective-C中的所有事物都是对象,它们由类定义。类是一个模板,描述了对象的属性...
### Objective-C基础教程 #### 一、Objective-C简介 Objective-C是一种通用的、...通过深入学习本书,读者可以全面掌握Objective-C的基本概念、语法结构及编程技巧,并能够利用这些知识开发出高质量的iOS应用程序。