Warning: Undefined array key "custom_message" in /www/wwwroot/bbs.aaronyang.cc/wp-content/plugins/wpcopyrights/index.php on line 105

Objective C 基础知识

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的重要数据类型

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

打印日志

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");
}

数组

NSMutableArray 和 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"]];

若文章对你有帮助,可以点赞或打赏支持我们。发布者:lyh会员,转载请注明出处:http://61.174.243.28:13541/AY-knowledg-hub/objective-c-%e5%9f%ba%e7%a1%80%e7%9f%a5%e8%af%86/

(0)
lyhlyh会员认证作者
上一篇 2023年 3月 18日 下午5:42
下一篇 2023年 3月 29日 下午9:42

相关推荐

  • mkinitrd

    文章目录mkinitrd补充说明语法选项参数实例 mkinitrd 建立要载入ramdisk的映像文件 补充说明 mkinitrd命令 建立要载入ramdisk的映像文件,以供Li…

    入门教程 2024年 1月 3日
  • 31. 自定义错误

    欢迎来到 Golang 系列教程的第 31 篇。 在上一教程里,我们学习了 Go 中的错误是如何表示的,并学习了如何处理标准库里的错误。我们还学习了从标准库的错误中提取更多的信息。…

    2023年 12月 5日
  • nologin

    文章目录nologin补充说明语法实例 nologin 拒绝用户登录系统 补充说明 nologin命令 可以实现礼貌地拒绝用户登录系统,同时给出信息。如果尝试以这类用户登录,就在l…

    入门教程 2024年 1月 10日
  • systemctl

    文章目录systemctl补充说明实例 systemctl 系统服务管理器指令 补充说明 systemctl命令 是系统服务管理器指令,它实际上将 service 和 chkcon…

    入门教程 2024年 3月 11日
  • php

    文章目录php补充说明语法选项参数 php PHP语言的命令行接口 补充说明 php命令 是流行的Web开发语言PHP的命令行接口,可以使用PHP语言开发基于命令行的系统管理脚本程…

    入门教程 2024年 3月 1日
  • service

    文章目录service补充说明语法选项参数实例 service 控制系统服务的实用工具 补充说明 service命令 是Redhat Linux兼容的发行版中用来控制系统服务的实用…

    入门教程 2024年 3月 4日
  • 类型

    文章目录类型bool有符号整型无符号整型浮点型复数类型其他数字类型string 类型类型转换 类型 上一节:第三篇 变量下一节:第五篇 常量 这是本Golang系列教程的第四篇。 …

    2023年 12月 5日
  • rpm

    文章目录rpm补充说明语法选项参数实例更多实例 rpm RPM软件包的管理工具 补充说明 rpm命令 是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来…

    入门教程 2024年 3月 4日
  • fold

    文章目录fold补充说明语法选项参数示例 fold 控制文件内容输出时所占用的屏幕宽度 补充说明 fold命令 用于控制文件内容输出时所占用的屏幕宽度。fold命令会从指定的文件里…

    入门教程 2023年 12月 14日
  • lsusb

    文章目录lsusb补充说明语法选项实例 lsusb 显示本机的USB设备列表信息 补充说明 lsusb命令 用于显示本机的USB设备列表,以及USB设备的详细信息。 lsusb命令…

    入门教程 2023年 12月 19日
Translate »