IOS基本概念
一.入门基础
1) Objective C的文件扩展名:
.h |
头文件。头文件包含类,类型,函数和常数的声明。 |
.m |
源代码文件。这是典型的源代码文件扩展名,可以包含Objective-C和C代码。 |
.mm |
源代码文件。带有这种扩展名的源代码文件,除了可以包含Objective-C和C代码以外还可以包含C++代码。仅在你的Objective-C代码中确实需要使用C++类或者特性的时候才用这种扩展名。 |
注:Objective C中提供了#inport来代替#include编译选项,而且能够确保相同的文件只会被包含一次;
2) 字符串NSString
Objective C提供了“@”,可以方便的从常量创建NSString对象;
NSString *myString = @”My String”;
NSString *myString2 = [NSString stringWithFormat:@”%d %S”,1,@”String”];
//从C字符串创建NSString字符串
NSString* fromCString = [NSString stringWithCString:”C String” encoding:NSASCIIStringEncoding];
3) 类
Objective-C的类规格说明包含了两个部分:接口和实现。接口部分包含了类声明和实例变量的定义,以及类相关的方法。实现部分包含了类方法的实际代码。
@interface MyString : NSObject
{
Int count;
Id data;
NSString *name;
}
- (id)initWithString: (NSString*)aName;
+ (MyString*)createMyClassWithString: (NSString*)aName;
@end
实现部分
@implementation MyString
- (id)initWithString: (NSString*)aName
{
If(self = [super init]){
Count = 0;
Data = nil;
Name = [aname copy];//
Return self;
}
}
+ (MyString*)createMyClassWithString: (NSString*)aName
{
Return [[[self alloc] initWithString:aName] autorelease];
}
此外,类不只可以声明方法,还可以声明属性;
当用变量保存对象的时候,始终应该使用指针类型。Objective-C对变量包含的对象支持强弱两种类型。强类型指针的变量类型声明包含了类名。弱类型指针使用id作为对象的类型。
MyString* mystring1; // strong typing;
Id mystring2;//weak typing
4) 方法
Objective-C中的类可以声明两种类型的方法:实例方法和类方法。
5) 属性
属性是用来代替声明存取方法的快捷方式;
属性声明应该放在类接口的方法声明那里。基本的定义使用@property编译选项,紧跟着类型信息和属性的名字。你还可以用定制选项对属性进行配置,这决定了存取方法的行为。
@property BOOL flag;
@property (copy) NSString* nameObject; // Copy the object during assignment.
@property (readonly) UIView* rootView;
// Create only a getter method.
使用属性另外的好处就是你可以在代码中访问他们的时候,使用点语法,如下面的例子所示:
myObject.flag = YES;
CGRect viewFrame = myObject.rootView.frame;
6) 协议和代理
协议声明了可以被任何类实现的方法。协议不是那些类本身。他们仅是定义一个接口,其他的对象去负责实现。你实现了协议里面的方法,就叫做符合协议。
协议的声明跟类接口的声明很像,只是协议没有父类,而且他们不会定义任何实例变量。下面的例子展示了一个有一个方法的协议声明:
@protocol MyProtocol
- (void)myProtocolMethod;
@end