iOS - Objective C 语言基础
iOS 开发中使用的语言是 Objective C。它是一种面向对象的语言,因此对于那些有一些面向对象编程语言背景的人来说会很容易。
接口与实现
在Objective C中,完成类声明的文件称为接口文件,定义类的文件称为实现文件。< /p>
一个简单的接口文件 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 | NSString 它用于表示字符串。 |
2 | CGfloat 它用于表示浮点值(也允许使用普通浮点,但最好使用 CGfloat)。 |
3 | NSInteger 它用于表示整数。 |
4 | BOOL 它用于表示布尔值(YES 或 NO 是允许的布尔值类型)。 |
打印日志
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"]];