Objective-C 基础知识

收藏879

阅读19879

更新时间2022-04-11

Objective-C 简介

在iOS的开发中使用的是Objective C语言,它是一种面向对象的语言,因而对于已经掌握面向对象语言知识的编程者来说是非常简单的。


接口和实现

在Objective里完成的文件被称为界面文件,该类文件的定义被称为实现文件。

一个简单的界面文件MyClass.h将如图所示:

@interface MyClass:NSObject{ // 类变量声明}// 类属性声明// 类方法和声明@end

执行MyClass.m文件,如下所示

@implementation MyClass// 类方法定义@end

创建对象

完成创建对象,如下所示

MyClass  *objectName = [[MyClass alloc]init] ;

方法(methods)

Objective C中声明的方法如下所示:

-(returnType)methodName:(typeName) variable1 :(typeName)variable2;

下面显示了一个示例:

-(void)calculateAreaForRectangleWithLength:(CGfloat)length 
andBreadth:(CGfloat)breadth;

你可能会想什么是andBreadth字符串,其实它的可选字符串可以帮助我们阅读和理解方法,尤其是当方法被调用的时候。

在同一类中调用此方法,我们使用下面的语句。

[self calculateAreaForRectangleWithLength:30 andBreadth:20];

正如上文所说的andBreath使用有助于我们理解breath是20。Self用来指定它是一个类的方法。

类方法(class methods)

直接而无需创建的对象,可以访问类方法。他们没有任何变量和它关联的对象。示例如下:

+(void)simpleClassMethod;

它可以通过使用类名(假设作为MyClass类名称)访问,如下所示:

[MyClass simpleClassMethod];
实例方法

可以创建的类的对象后只访问实例方法,内存分配到的实例变量。实例方法如下所示:

-(void)simpleInstanceMethod;

创建类的对象后,它可以访问它。如下所示:

MyClass  *objectName = [[MyClass alloc]init] ;[objectName simpleInstanceMethod];

Objective C的重要数据类型

序号数据类型
1NSString字符串
2CGfloat 浮点值的基本类型
3NSInteger 整型
4BOOL 布尔型

打印日志

NSLog用于打印一份声明,它将打印在设备日志和调试版本的控制台和分别调试模式上。

如 NSlog(@"");


控制结构

除了几个增补的条款外,大多数的控制结构与C以及C++相同

属性(properties)

用于访问类的外部类的变量属性

比如:@property(非原子、强)NSString*myString

访问属性

可以使用点运算符访问属性,若要访问上一属性可以执行以下操作

self.myString = @"Test";

还可以使用set的方法,如下所示:

[self setMyString:@"Test"];

类别(categories)

类用于将方法添加到现有类。通过这种方法可以将方法添加到类,甚至不用执行文件,就可以在其中定义实际的类。MyClass的样本类别,如下所示:

@interface MyClass(customAdditions)- (void)sampleCategoryMethod;@end@implementation MyClass(categoryAdditions)-(void)sampleCategoryMethod{   NSLog(@"Just a test category");}

数组(arrays)

NSMutable和NSArray 是ObjectiveC中使用的数组类,前者是可变数组,后者是不可变数组。如下:

NSMutableArray *aMutableArray = [[NSMutableArray alloc]init];[anArray addObject:@"firstobject"];NSArray *aImmutableArray = [[NSArray alloc]initWithObjects:@"firstObject",nil];

词典

NSMutableDictionary和NSDictionary是Objective中使用的字典,前者可变词典,后者不可变词典,如下所示:

NSMutableDictionary*aMutableDictionary = [[NSMutableArray alloc]init];[aMutableDictionary setObject:@"firstobject" forKey:@"aKey"];NSDictionary*aImmutableDictionary= [[NSDictionary alloc]initWithObjects:[NSArray arrayWithObjects:@"firstObject",nil] forKeys:[ NSArray arrayWithObjects:@"aKey"]];

相关

视频

RELATED VIDEOS

更多

免费

极客学院jQueryMobile视频教程

免费

极客学院Swift语言视频教程

免费

尚学堂Swift入门视频教程

免费

微信小程序--企业微网站

免费

Flutter基础视频教程
中级 Flutter基础视频教程

28784次学习

收藏

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号