📅  最后修改于: 2020-12-08 06:16:53             🧑  作者: Mango
iOS开发中使用的语言是目标C。这是一种面向对象的语言,因此,对于那些具有面向对象编程语言背景的人来说,这很容易。
在目标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] ;
方法在目标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];
Sr.No. | Data Type |
---|---|
1 |
NSString It is used for representing a string. |
2 |
CGfloat It is used for representing a floating point value (normal float is also allowed but it’s better to use CGfloat). |
3 |
NSInteger It is used for representing integer. |
4 |
BOOL It is used for representing Boolean (YES or NO are BOOL types allowed). |
NSLog-用于打印语句。它将分别以发布和调试模式打印在设备日志和调试控制台中。例如,
NSlog(@"");
大多数控制结构与C和C++中的相同,除了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是目标C中使用的数组类。顾名思义,前者是可变的,后者是不可变的。一个例子如下所示。
NSMutableArray *aMutableArray = [[NSMutableArray alloc]init];
[anArray addObject:@"firstobject"];
NSArray *aImmutableArray = [[NSArray alloc]
initWithObjects:@"firstObject",nil];
NSMutableDictionary和NSDictionary是目标C中使用的字典类。顾名思义,前者是可变的,后者是不可变的。一个例子如下所示。
NSMutableDictionary *aMutableDictionary = [[NSMutableArray alloc]init];
[aMutableDictionary setObject:@"firstobject" forKey:@"aKey"];
NSDictionary*aImmutableDictionary= [[NSDictionary alloc]initWithObjects:[NSArray arrayWithObjects:
@"firstObject",nil] forKeys:[ NSArray arrayWithObjects:@"aKey"]];