- iOS教程
- iOS - 主页
- iOS - 入门
- iOS - 环境设置
- iOS - Objective-C 基础知识
- iOS - 第一个 iPhone 应用程序
- iOS - 操作和出口
- iOS - 代表
- iOS - UI 元素
- iOS - 加速度计
- iOS - 通用应用程序
- iOS - 相机管理
- iOS - 位置处理
- iOS-SQLite 数据库
- iOS - 发送电子邮件
- iOS - 音频和视频
- iOS - 文件处理
- iOS - 访问地图
- iOS - 应用内购买
- iOS - iAd 集成
- iOS - 游戏套件
- iOS - 故事板
- iOS - 自动布局
- iOS - 推特和脸书
- iOS - 内存管理
- iOS - 应用程序调试
- iOS 有用资源
- iOS - 快速指南
- iOS - 有用的资源
- iOS - 讨论
iOS-目标C
iOS开发中使用的语言是objective C。它是一种面向对象的语言,因此对于那些有一定面向对象编程语言背景的人来说会很容易。
接口与实现
在 Objective C 中,声明类的文件称为接口文件,定义类的文件称为实现文件。
一个简单的接口文件MyClass.h如下所示 -
@interface MyClass:NSObject { // class variable declared here } // class properties declared here // class methods and instance methods declared here @end
实现文件MyClass.m如下 -
@implementation MyClass // class methods defined here @end
对象创建
对象创建如下:
MyClass *objectName = [[MyClass alloc]init] ;
方法
方法在 Objective C 中声明如下:
-(returnType)methodName:(typeName) variable1 :(typeName)variable2;
一个例子如下所示。
-(void)calculateAreaForRectangleWithLength:(CGfloat)length andBreadth:(CGfloat)breadth;
您可能想知道andBreadth字符串的用途;实际上它是一个可选字符串,它可以帮助我们轻松阅读和理解该方法,特别是在调用时。要在同一个类中调用此方法,我们使用以下语句 -
[self calculateAreaForRectangleWithLength:30 andBreadth:20];
如上所述,andBreadth的使用帮助我们理解宽度是20。Self用于指定它是一个类方法。
类方法
可以直接访问类方法,无需为类创建对象。它们没有任何与之关联的变量和对象。一个例子如下所示。
+(void)simpleClassMethod;
可以通过使用类名(假设类名为 MyClass)来访问它,如下所示 -
[MyClass simpleClassMethod];
实例方法
只有在为类创建对象后才能访问实例方法。内存分配给实例变量。下面显示了一个示例实例方法。
-(void)simpleInstanceMethod;
为类创建对象后可以访问它,如下所示 -
MyClass *objectName = [[MyClass alloc]init] ; [objectName simpleInstanceMethod];
Objective C 中的重要数据类型
先生。 | 数据类型 |
---|---|
1 | NS字符串 它用于表示字符串。 |
2 | CG浮动 它用于表示浮点值(也允许使用普通浮点数,但最好使用 CGfloat)。 |
3 | NS整数 它用于表示整数。 |
4 | 布尔值 它用于表示布尔值(YES 或 NO 是允许的 BOOL 类型)。 |
打印日志
NSLog - 用于打印语句。它将分别在发布和调试模式下打印在设备日志和调试控制台中。例如,
NSlog(@"");
控制结构
大多数控制结构与 C 和 C++ 中的相同,除了一些添加内容(例如 for in 语句)。
特性
对于外部类访问该类,使用变量属性。例如,
@property(nonatomic , strong) NSString *myString;
访问属性
您可以使用点运算符来访问属性。要访问上述属性,我们将执行以下操作。
self.myString = @"Test";
您还可以使用 set 方法,如下所示 -
[self setMyString:@"Test"];
类别
类别用于向现有类添加方法。通过这种方式,我们可以将方法添加到我们甚至没有定义实际类的实现文件的类中。我们班级的样本类别如下 -
@interface MyClass(customAdditions) - (void)sampleCategoryMethod; @end @implementation MyClass(categoryAdditions) -(void)sampleCategoryMethod { NSLog(@"Just a test category"); }
数组
NSMutableArray 和 NSArray 是 Objective C 中使用的数组类。顾名思义,前者是可变的,后者是不可变的。一个例子如下所示。
NSMutableArray *aMutableArray = [[NSMutableArray alloc]init]; [anArray addObject:@"firstobject"]; NSArray *aImmutableArray = [[NSArray alloc] initWithObjects:@"firstObject",nil];
字典
NSMutableDictionary 和 NSDictionary 是 Objective C 中使用的字典类。顾名思义,前者是可变的,后者是不可变的。一个例子如下所示。
NSMutableDictionary *aMutableDictionary = [[NSMutableArray alloc]init]; [aMutableDictionary setObject:@"firstobject" forKey:@"aKey"]; NSDictionary*aImmutableDictionary= [[NSDictionary alloc]initWithObjects:[NSArray arrayWithObjects: @"firstObject",nil] forKeys:[ NSArray arrayWithObjects:@"aKey"]];