简介
iOS开发中使用的语言是objective C.它是一种面向对象的语言,因此有面向对象语言编程的一些背景会很容易理解。
接口和实现
在Objective-C类的声明文件被称为接口文件和文件定义类被称为实现文件。
类似于下面的一个简单的接口文件MyClass.h
@interace 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有助于我们理解,breath 是20。self 用于指定它是一个类方法。
类方法
类方法可以直接访问,而无需创建类的对象。他们没有任何与它相关联的变量和对象。例子如下所示。
+(void)simpleClassMethod;
它可以访问使用类名(我们假设MyClass作为类名)如下。
[MyClass simpleClassMethod];
实例访求
实例方法可以访问后,才创建的类的对象。实例变量分配内存。的一个例子的实例方法如下所示。
-(void)simpleInstanceMethod;
它可以访问如下的类创建对象后,
MyClass *objectName = [[MyClass alloc]init] ; [objectName simpleInstanceMethod];
Objective-C重要数据类型
S.N. | 数据类型 |
---|---|
1 |
NSString It is used for representing a string |
2 |
CGfloat It is used for representing a floating yiibai value (normal float is also allowed but it's better to use CGfloat) |
3 |
NSInteger It is used for representing integer |
4 |
BOOL used for representing Boolean(YES or NO are BOOL types allowed ) |
打印日志
NSLog - 使用打印一份声明。这将是打印的设备的日志和调试控制台释放和调试模式。
Eg: NSlog(@"");
控制结构
大多数的控制结构中的相同,C和C ++除了在声明中添加了一些像。
属性
使用一个外部类访问类变量属性
Eg: @property(nonatomic , strong) NSString *myString;
访问属性
可以使用点运算符来访问属性。访问上述物业,我们将做到以下几点。
self.myString = @"Test";
也可以使用设置方法如下。
[self setMyString:@"Test"];
部类
类别将方法添加到现有的类。通过这种方式,我们可以添加类的方法,而我们甚至没有实施实际的类定义文件。我们的类是一个样本类别如下。
@interace 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"]];