nil 类似于C中的NULL, 但nil是Object, 可以发送消息给nil
如:
[nil message]
BOOL 也是通过类库实现的, 分别是YES和NO
#import 类似了 #include ,但不会存在重复包含的问题
在普通的双引号字符串前放置一个@符号,就成了一个 NSString对象
方法名字前面的单个减号(-)表明该方法是一个实例方法。如果方法名字前面是一个加号(+),则表明该方法是一个类(static)方法。
这个概念在C++中也是有的.
Objective-C中的类可以分为两种类型的方法: 实例方法(instance methods)和类方法(class methods). 实例方法就是一个在类的一个具体实例的范围内执行的方法。也就是说,在你调用一个实例方法前,你必须首先创建类的一个实例。而类方法,不需要你创建一个实例。
以下是自己在学习Objective-c的时候所涉及的代码:
类的定义:
Java代码
#import <Cocoa/Cocoa.h>
@interface StringUtils : NSObject {
}
//默认的初始化方法
- (id) init;
//指定的初始化方法,比如NSString自带的有 initWidthFormat这个初始化方法
- (id) initWithString:(NSString*) string;
- (NSArray*) split:(int) a;
@end
#import <Cocoa/Cocoa.h>
@interface StringUtils : NSObject {
}
//默认的初始化方法
- (id) init;
//指定的初始化方法,比如NSString自带的有 initWidthFormat这个初始化方法
- (id) initWithString:(NSString*) string;
- (NSArray*) split:(int) a;
@end
类的实现:
Java代码
//
// 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
//
// 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
开始调用:
Java代码
#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;
}
分享到:
相关推荐
在这个教程中,你将了解到如何初始化项目,设置视图,并理解这些基本元素的工作原理。 2. **场景管理**:在Cocos2D-iPhone中,场景是游戏或应用的主要容器,可以包含多个层。我们将会学习如何创建和切换场景,以及...
通过示例工程,我们可以学习到如何组织项目结构、初始化Cocos2d-iPhone环境、加载资源、创建精灵、应用动作、处理用户输入、播放音频、以及利用物理引擎进行碰撞检测等。每个示例都是一次具体实践,通过分析和修改...
1. HelloWorld Layer:通常是一个项目的起点,展示了如何创建和初始化场景和层。 2. CCAction:源码中的动作类实现,可以看到如何定义和执行不同的动作效果。 3. CCTexture2D:纹理管理类,涉及图片加载和纹理 ...
源码中的“1”可能涵盖如何创建和切换场景,例如使用` CCDirector`来初始化和运行场景,以及如何在不同场景之间进行平滑过渡。 2. **精灵与图层**: "2"的代码可能涉及到精灵(CCSprite)和图层(CCLayer)的使用...
在iOS开发中,理解应用程序的生命周期管理至关重要,这包括初始化、视图控制器的加载与显示、内存管理以及用户交互处理。源码中可能包含AppDelegate.swift或AppDelegate.m文件,这是应用生命周期的核心,负责响应...
你需要理解如何在Objective-C中实现这些逻辑,包括初始化游戏面板、标记雷区、计算安全格子等。 5. **事件处理**:游戏中的用户交互,如点击或滑动,需要通过事件处理来响应。这涉及到UIControl的事件代理方法和...
`这一行调用了父类的初始化方法,确保父类的初始化逻辑得以执行。 - `if(self){...}`:初始化对象变量的过程。 ##### 2. 方法声明与调用 Objective-C中的方法声明和调用具有独特的语法结构。 - **方法原型**: `...
本篇文章将深入探讨“iPhone Browser-1”这个iOS应用的源码,帮助开发者理解如何构建一个基本的iPhone浏览器。该源码项目以ZIP文件形式提供,包含了一个名为"iPhone Browser-1"的子目录,这正是我们要探索的核心。 ...
- **准备工作**:确保已经设置了OpenGL ES环境,如加载所需的库文件、初始化渲染上下文等。 - **绘制流程**: 1. **定义几何数据**:如上面提到的三角形顶点坐标。 2. **配置OpenGL状态**:包括设置颜色、深度测试...
2. **环境配置与项目初始化**:教程将指导如何设置Xcode开发环境,创建新项目,并引入Cocos2D-iPhone库。理解项目结构和配置是游戏开发的第一步。 3. **基本图形与精灵(Sprites)**:学习如何绘制和操作2D图形,...
- 主工程通常包括一个main.m文件,负责初始化Cocos2d环境,并启动第一个场景。 5. **运行示例工程**: - 在完成安装后,可以尝试运行Cocos2d-iPhone提供的示例工程,这些示例可以帮助您更快地理解框架的使用方式...
2. 引导加载:它负责引导iOS操作系统,连接到硬件,并初始化必要的服务。 3. 恢复模式管理:当设备遇到问题或需要进行恢复操作时,iBoot也参与其中,如DFU(Device Firmware Upgrade)模式和恢复模式。 iBoot的特性...
另外,它也会涉及一些iOS开发中常用的高级概念,比如对象的初始化、字符串、数组和字典的操作、属性的使用、类别(Categories)、协议(Protocols)、委托(Delegate)模式等。 从内容部分可以提取出,该教程适合...
在Demo中,你会看到如何初始化CLLocationManager对象,设置其代理,并启用位置更新。 接下来是MapKit框架的介绍。MapKit是iOS中用于展示地图、标记和路线的库,它与Core Location紧密协作,提供了丰富的地图功能。...
1. **初始化与设置**:如何配置项目,引入Cocos2D库,以及设置主入口点(如`AppDelegate.m`中的`applicationDidFinishLaunching:`方法)。 2. **场景与层的管理**:如何创建和切换场景(`CCScene`),以及在层(`...
6. **App生命周期**:了解应用从启动到关闭的过程,包括初始化、内存管理、后台模式等。 7. **手势识别**:如轻触、滑动、捏合等手势的处理,以增强用户交互。 8. **网络编程**:包括使用URLSession进行HTTP请求,...