[转] 从 C 到 Objective C 入门1
转自: http://blog.liuhongwei.cn/iphone/objective-c/
进军iPhone开发,最大的难点之一就是怪异的Objective C语法了。不过,了解之后才发现,原来仅仅是形式上与C++、Java有差异,属于换汤不换药。如果有C语言基础,又用过C++、Java,2天之内掌握Objective C,没有问题,至少看例子程序会感觉顺眼很多。
Objective C脱胎于C语言,苹果版的开发编译环境就是大名鼎鼎的Xcode,其中的Cocoa就是Objective C库函数。
与C语言一致的部分
int main( int argc, const char *argv[] ) {
printf( "hello worldn" );
return 0;
}
- 数据类型,表达式,各种运算符
- 循环:for, while, do while, break, continue
- 分支:if, else, switch
类定义@interface
#import <Foundation/NSObject.h>
@interface Bank: NSObject {
NSString *name;
int amount;
}
-(void) print;
-(void) addAmount: (int) a;
-(int) amount;
-(Bank *) initWithName: (NSString *) n andAmount: (int) a;
@end
- 写在Bank.h中
- #import是引入库函数
- @interface是表明定义了一个类,冒号后面是父类类型
- 两个大括号之间的部分就是类的成员变量,只有类函数能够直接访问
- - 表明要定义一个类对象级别的函数;如果是+,表明要定义类级别的函数
- 返回值与参数的类型放在()内
- 函数定义中的: 表明后面会跟一个参数
- 如果函数有多个参数,要写多个xxx:
- 类的函数定义结束后,使用@end关闭
类实现@implementation
#import "Bank.h"
#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>
@implementation Bank
-(void) print {
printf("Total amount is %i", amount);
}
-(void) addAmount: (int) a {
amount += a;
}
-(int) amount{
return amount;
}
-(Bank *) initWithName: (NSString *) n andAmount: (int) a{
self = [super init];
name = n;
amount = a;
return self;
}
@end
- 写在Bank.m
- @implementation定义函数的具体内容,后面接着类名
- 函数头按照定义来写
- 最后用@end来结束所有函数体
调用写好的类和类函数
#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>
#import "Bank.h"
int main( int argc, const char *argv[] ) {
//创建新对象,使用缺省初始化函数
Bank *bankDefault = [[Bank alloc] init];
//创建新对象,使用自定义初始化函数
Bank *bank = [[Bank alloc] initWithName: @"Harry" andAmount: 28];
[bank addAmount: 1];
[bank print];
[bank free]; // 释放对象
[bankDefault free]; // 释放对象
return 0;
}
- 调用类函数的时候,首先创建并初始化对象。这里我们使用缺省的init和我们自定义的initWithName来分别初始化一个对象;
- 使用[]来调用函数,按照次序分别是:对象名,函数名,: 参数值(如果有),函数名第二部分(如果有),:第二参数值(如果有);
参考:
- Objective C编程,书的精简版:http://www.otierney.net/objective-c.html.zh-tw.big5
- Objective-C语法快速入门:http://www.cocoachina.com/index.php/archives/cocoachina_122.html
[转] 从 C 到 Objective C 入门1的更多相关文章
- KVC的用法
示例1:基本赋值取值 @interface Book : NSObject { NString *name;}@end #import "Book.h"@implement ...
- Automake
Automake是用来根据Makefile.am生成Makefile.in的工具 标准Makefile目标 'make all' Build programs, libraries, document ...
- Objective C 快速入门学习一
Objective-C程序设计 1. 直接用Xcode作为IDE,舍弃gcc编译方面的学习.2. 入门例子:Eg:打印Hello World 控制台程序 #import<Foundation/F ...
- Objective C 快速入门学习五
<一>继承和多态 @class Complex 声明类(同C++) 子类函数成员 super 访问父类 同C++类似 .通过继承 在子类中添加新方法 .通过继承 在子类中添加新成员 .通过 ...
- Objective C 快速入门学习四
类 1.合成存取器方法 @property 成员变量 @synthesize 成员变量 可以让编译器自动合成 设置和获取函数的方法,不用手动生成set成员变量,Get成员变量 @interface ...
- Objective C 快速入门学习三
1.数据类型 和C语言基本一样. 有一个特别数据类型id,可以储存任何类型的对象,它是实现多态和动态绑定的基础. Objective-C 2.程序结构 Objective-C和C的程序结构一模一样,具 ...
- Objective C 快速入门学习二
Objective-C 类.对象.方法 1.编写一个复数类: #import <Foundation/Foundation.h>@interface Complex: NSObject / ...
- 4 字符串 Swift/Objective -C ——《Swift3.0从入门到出家》
4 字符串 Swift and Object-C 字符串由多个字符组成,使用 “” 引起的内容 swift语言中提供了两种字符串:可变字符串和不可变字符串 可变字符串:字符串的内容可以修改,字符串 ...
- iOS 开发-- Runtime 1小时入门教程
1小时让你知道什么是Objective-C Runtime,并对它有一定的基本了解,可以在开发过程中运用自如. 三.Objective-C Runtime到底是什么东西? 简而言之,Objective ...
随机推荐
- 详解 $_SERVER 函数中QUERY_STRING和REQUEST_URI区别(转)
对于php$_SERVER这个全局变量 ,里面有很多的参数,慢慢的熟悉 1,http://localhost/aaa/ (打开aaa中的index.php)结果:$_SERVER['QUERY_STR ...
- Seo标签权重
最近接手凤凰焦点的业务,首先做的现有线上业务梳理,接着是拆分模块. 页头部分有些争议.假设把页头做成一个组件,pc端因为不能页面加载的差不多了页头才突兀的出来一是体验不好,还有不利于seo,最终决定还 ...
- MVC使用x.PagedList分页
MVC分页 1.Install Package Tools=> NuGet Package Manager=>Manager NuGet Packages of Solution
- svn patch
生成patch文件: svn diff > patchFile // 整个工程的变动生成patch 或svn diff file > patchFile // 某个文件单独变动的patch ...
- Memcached的使用
为什么要使用Memcached? 1)高并发访问数据库的痛:死锁 2)磁盘IO之痛 3)读写性能完美 4)超简单的集群搭建Cluster 5)开源 6)性能最佳 7)丰富的成功案例 Memcached ...
- liunx 系统 git clone ssh代码时需要sshkey
1. 在root用户目录下 执行命令 cd .ssh cat id_rsa.pub 粘贴 ssh key
- Laravel RuntimeException inEncrypter.php line 43: The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths
php artisan key:generate 运行上面代码即可解决
- JAVA GUI布局管理器
边界布局管理器: a.布局方式:是把整个容器划分为五个部分.东西南北中,南北要贯通,中间最大 (不仅是中间的范围最大,权利也最大)当周边不存在的时候中间会占领周边,当中间不存在的时候周边不能占据中间 ...
- RapidJson读取json文档
Json格式定义如下 Object: { _Name:_Data,... } 最后一项后面没有逗号 Array: [_Data,_Data,...] 最后一项后面没有逗号 _Name: String ...
- AngularJS的$watch用法
$watch简单使用 $watch是一个scope函数,用于监听模型变化,当你的模型部分发生变化时它会通知你. $watch(watchExpression, listener, objectEqua ...