版权所有,欢迎转载,转载请注明 : 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;
}
分享到:
相关推荐
《Objective-C程序设计》(作者杨正洪、郑齐心、李建国)通过大量的实例系统地介绍了Objective-C语言的基本概念、语法规则、框架、类库及开发环境。读者在阅读本书后,可以掌握Objective-C语言的基本内容,并进行...
本书全面而系统地讲述 Objective-C 语言的基础知识和面向对象编程的重要概念,结合实例介绍了 Cocoa 工具包的优秀特性和其中的框架,以及继承、复合、源文件组织、内存管理、对象初始化和类别创建等众多重要的面向...
directional_example_of_objective_c 如何定义属性如何写构造函数如何编写实例方法如何初始化对象如何使用定义的对象#premitive_type_variable_example 所有变量的例子如何打印它们所有变量说明符所有可变的实际尺寸...
仿百度传课iOS版,版本号2.4.1.2,使用 Objective-C 语言编写,除系统自动创建的初始化页面外,其他页面都是使用纯代码编写,没有任何布局文件 软件开发设计:PHP、QT、应用软件开发、系统软件开发、移动应用开发、...
为了一个程序运行,计算机加载程序代码,可能还要加载数据,从而初始化成一个开始状态,然后调用某种启动机制。在最低层上,这些是由一个引导序列开始的。 在大多数计算机中,操作系统例如视窗等,加载并且执行...
概述 JSKit 是一个伟大的项目! 她试图提供一个公共的...描述:用于初始化新对象的信息. callback(ret, err) ret: 类型:JSON对象. 描述: 创建对象成功时返回.失败时, ret 值为 null. 内部字段: { id: "jskit001" //
现在我们将深入介绍如何创建集,并用数据初始化集的属性。学完本节后,你对基于建模技术的集如何引入模型会有一个基本的理解。 2.1 为什么使用集 集是LINGO建模语言的基础,是程序设计最强有力的基本构件。借助于集...
12.4.3 初始化interface builder对象170 12.4.4 访问.xib文件170 12.4.5 新建.xib文件171 12.5 小结171 第13章 创建基本视图控制器172 13.1 视图控制器家族172 13.2 基本的视图控制器173 13.2.1 视图...
WSLWaterFlowLayout 简书地址: ( 此库年久失修,不建议直接使用,可以学习看看.../** 初始化 生成每个视图的布局信息*/ -(void)prepareLayout; /** 决定一段区域所有cell和头尾视图的布局属性*/ -(NSArray<UIColl
眼| lLearn iOS上的可视对象识别,可使用Arduino Yun进行上下文家庭自动化。 ![眼睛]( )初始TODO “构建一个AR iOS应用,该应用可以识别来自摄像机的视频馈送中的可控对象,然后向用户呈现相关的UI,并与该对象中...
---真正的跨平台目前各个平台的游戏开发几乎没有通用性,开发iPhone上的游戏需要学习Objective C,开发Android上的游戏大多用Java,开发Windows Phone上的游戏用C#,……。如何只学习一种语言就能够开发出跨越多个...