
- 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 - GameKit
- iOS - 故事板
- iOS - 自动布局
- iOS - Twitter 和 Facebook
- iOS - 内存管理
- iOS - 应用程序调试
- iOS 有用资源
- iOS - 快速指南
- iOS - 有用资源
- iOS - 讨论
iOS - Objective 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] ;
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
方法
在 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 | NSString 用于表示字符串。 |
2 | CGfloat 用于表示浮点值(也允许使用普通浮点数,但最好使用 CGfloat)。 |
3 | NSInteger 用于表示整数。 |
4 | BOOL 用于表示布尔值(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"]];