版权所有,欢迎转载,转载请注明 : SinFrancis http://mdev.cc
nil 类似于C中的NULL, 但nil是Object, 可以发送消息给nil
如:
[nil message]
BOOL 也是通过类库实现的, 分别是YES和NO
#import 类似了 #include ,但不会存在重复包含的问题
在普通的双引号字符串前放置一个@符号,就成了一个 NSString对象
方法名字前面的单个减号(-)表明该方法是一个实例方法。如果方法名字前面是一个加号(+),则表明该方法是一个类(static)方法。
这个概念在C++中也是有的.
Objective-C中的类可以分为两种类型的方法: 实例方法(instance methods)和类方法(class methods). 实例方法就是一个在类的一个具体实例的范围内执行的方法。也就是说,在你调用一个实例方法前,你必须首先创建类的一个实例。而类方法,不需要你创建一个实例。
以下是自己在学习Objective-c的时候所涉及的代码:
类的定义:
#import <Cocoa/Cocoa.h>
@interface StringUtils : NSObject {
}
//默认的初始化方法
- (id) init;
//指定的初始化方法,比如NSString自带的有 initWidthFormat这个初始化方法
- (id) initWithString:(NSString*) string;
- (NSArray*) split:(int) a;
@end
类的实现:
//
// StringUtils.m
// string
//
// Created by sin francis on 10-7-12.
// Copyright 2010 __MyCompanyName__. All rights reserved.
//
#import "StringUtils.h"
@implementation StringUtils
- (id) init
{
if(self = [super init]){
NSLog(@"init method");
}
return (self);
}
- (id) initWithString :(NSString *) string
{
if(self = [super init]){
NSLog(string);
}
return (self);
}
- (NSArray*) split:(int) a
{
NSLog(@"aaaaaaaaa");
return @"ssss";
}
@end
开始调用:
#import <Foundation/Foundation.h>
#import "StringUtils.h"
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
//StringUtils* s= [[StringUtils new];
//一开始使用的方法,生成对象,现在我们使用alloc的方式生成对象
StringUtils* s= [[StringUtils alloc] init];
[s split: 1];
StringUtils* s1= [[StringUtils alloc] initWithString :@"this is the init string"];
// insert code here...
NSLog(@"Hello, World!");
[pool drain];
return 0;
}
分享到:
相关推荐
4. **懒加载(Lazy Loading)**:这是一种优化技术,延迟初始化直到真正需要时才进行,减少启动时间和内存占用。 5. **KVC(Key-Value Coding)** 和 **KVO(Key-Value Observing)**:KVC提供了一种间接访问对象...
4. 构造器(Constructors):Objective-C中的构造器用于初始化对象实例。虽然语言本身不直接支持构造器,但通常在类的实现部分使用特定的方法来模拟构造器的功能。 5. 类级别的访问控制(Classlevel access):...
### Objective-C语言教程知识点...通过本教程的学习,你将能够掌握Objective-C的基本语法,并具备构建macOS和iOS应用程序的能力。Objective-C的应用范围广泛,不仅适用于桌面应用开发,更是iOS应用开发的首选语言之一。
- **学习前提**: 对于已经熟悉面向对象编程概念和C语言基础的学习者来说,学习Objective-C将更为容易。 #### 二、Objective-C基本语法 - **方法调用**: - 基本语法: `[object method]`。 - 参数传递: `[object ...
- **建构子(Constructors)**:创建对象时执行的特殊方法,通常用于初始化新实例的属性。 - **访问权限**:Objective-C中的`public`、`private`、`protected`等关键字控制类成员的可见性。 - **Class level ...
本基础案例集旨在帮助初学者深入理解Objective-C的语法特性,通过实际代码示例来提升学习效果。 Objective-C是在C语言的基础上扩展的,因此了解C语言的基本概念是必要的。C语言提供了基本的数据类型(如int、char、...
书中还会涵盖对象生命周期,如初始化和释放,以及如何使用属性和协议来增强类之间的交互。此外,还可能介绍Foundation框架的基础知识,如字符串操作、集合类(NSArray, NSDictionary等)以及文件I/O。 2. **...
3. 初始化方法:`-initWithString:`被标记为指定初始化器,表明它是初始化类实例的主要方式。 4. 方法命名:方法名采用动词+名词的形式,如`-setFoo:`,`+fooWithString:`等,以反映其功能。 5. 变量命名:私有变量...
《在Mac上学习Objective-C》是一本面向开发者介绍如何使用Objective-C语言为Mac OS X和iOS平台开发应用程序的书籍。Objective-C是苹果公司用来开发iOS和OS X应用程序的原生编程语言,它基于C语言并加入了面向对象的...
C语言是Objective-C的基础,掌握C语言对于学习Objective-C至关重要。本书的第一章《C, the Foundation of Objective-C》从C语言的基本概念出发,介绍了变量、数据类型、运算符、表达式、控制结构等基础知识,为后续...
读者将学习如何定义和使用类,以及如何创建和初始化对象。 3. **消息传递**:Objective-C通过消息传递实现对象间的通信。发送消息就像调用方法一样,但它是动态绑定的,允许在运行时决定哪个方法被调用。这种灵活性...
接着,书中讨论了对象初始化的概念,这对于理解如何在Objective-C中创建和管理对象有着重要的意义。 本书的后半部分深入到更高级的编程话题中。例如,书中介绍了Objective-C的属性、分类(Categories)和协议...
方法名前缀“init”通常用于初始化对象,而“dealloc”用于清理对象资源。 Objective-C引入了协议(Protocols),这是一种类似Java和C#的接口概念。协议定义了一组方法,但不包含实现。类可以遵循一个或多个协议,...
7. **alloc和init**:`alloc`方法用于分配内存并初始化对象,`init`方法则用于进一步配置对象的实例变量。 8. **类的结构**:一个Objective-C类通常包含接口(.h文件)和实现(.m文件)。接口文件声明实例变量和...
理解如何声明、初始化和操作对象是学习Objective-C的第一步。 3. **动态类型系统**:Objective-C支持动态类型,意味着在编译时不需要知道对象的确切类型,这为编写灵活的代码提供了可能。 4. **协议**:协议是...
1. Objective-C基础:包括类、对象、消息传递、属性、实例变量、初始化方法等。 2. Cocoa基础:讲解Foundation和AppKit框架,以及如何导入和使用这些框架中的类。 3. MVC模式:介绍如何实现Model、View和Controller...
- **实现文件(.m)**:包含方法的具体实现和实例变量的初始化。 - **@interface与@end**:用于定义类的结构和方法。 - **@implementation与@end**:用于实现接口中的方法。 5. **学习资源与社区**: - **CSDN*...
- **构造函数**:初始化对象的特殊方法。 - **访问控制**:控制类成员的可见性,如 public、protected 和 private。 - **类级访问**:定义类级别的变量和方法。 - **异常处理**:如何使用异常来处理错误情况。 -...