1.前言
在学习IOS之前我想我们应该,简单的了解一下Objective-C的语法特性,毕竟这个是基础,所以今天我们来简单学习一下Objective-C语言的特性。
2.Objective-C学习
2.1变量
和其他语言一样Objective-C也是具有其特有的数据类型,举例:NSInteger 能用来保存有符号的(正或者负)的整形变量。
NSUInteger 这个类型的变量可以存储 unsigned 整型值(只能是正的或者 0)。
NString string 类型的数据,比如"Mrs Thomson"。
NSArray 其实也就是一个数组,比如说你有十个文件对象,那么你可以把他们保存在这个里面.
NSSet 你可以保存唯一的,没有重复的集合对象。
Float 浮点型的数据,例如 1.23。
2.2语句结构
2.2.1IF 逻辑判断分支结构
if (<replaceable>condition</replaceable>){
/* Your code to get executed if the <replaceable>condition</replaceable> is met */
} else {
/* Code to get executed if <replaceable>condition</replaceable> is not met */
}
2.2.2 For 循环的结构
char *myString = "This is my string";
NSUInteger counter = 0;
for (counter = 0; /* Start from index 0 */
counter < strlen(myString);
/* Exit loop when we reach last character */
counter++){ /* Increment the index in every iteration */
char character = myString[counter];
NSLog(@"%c", character);
}
2.2.3 While Loop 的循环结构
NSUInteger counter = 0; //你自己创建的一个计数器
while (counter < 10){
NSLog(@"Counter = %lu", (unsigned long)counter);
counter++; //需要你自己来进行维护管理.
}
2.3自定义类
在 Objective-C 中,类通常由以下两部分组成:头文件是以.h 为后缀的扩展名。
执行文件:在头文件中定义类的功能后,你在这里编写所有功能的实际代码。执行文件是以一个.m 为后
缀的扩展名。
头文件:这里是你定义的类,基本上是:接受用户输入,旋转形状,等等。但是头文件并不执行该功能。
2.4分配和初始化对象
必须先分配和初始化一个对象才能使用它。可以使用alloc这个实例方法来分配一个对象。该类方法会为对象、对象的实例和方法分配内存空间。但是,被分配的内存并未定义。所以,每个对象必须初始化,就是给它赋上初值。当执行一个新的对象时,不要重载alloc这个方法。这个方法是在声明在NSObject里的。相反的,而是为特定对象处理所需参数重载init方法和创建自定义方法。
2.5 添加类的属性
一个属性是用@property关键字定义的。当定义一个属性时,会告诉编译器我们将会给这个属性写上一个setter和getter方法。如果在这个属性里设置一个值,运行时将执行setter方法。如果读取属性,则执行的执行的getter 方法。
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property (nonatomic, strong)
NSString *firstName;
@end
我们可以在我们可以在.m文件中使用文件中使用@synthesize关键字让编译器自动关键字让编译器自动为属性生成为属性生成setter和gtter方法:
#import "Person.h"
@implementation Person
@synthesize firstName;
- (id)init {
self = [super init];
if (self) {
// Initialization code here.
}
return self;
}
@end
接下来我们可以使用Person类了。这里有一个范例:
#import "SomeOtherClass.h"
#import "Person.h"
@implementation SomeOtherClass
- (void) makeNewPerson{
Person *newPerson = [[Person alloc] init];
newPerson.firstName = @"Andrew"; NSLog(@"First name = %@", newPerson.firstName);
NSLog(@"First name = %@", [newPerson firstName]);
}
@end
2.6 检测实例或类方法是否有效
使用NSObject的instancesRespondSelector:(类方法)检测指定的selector否存在类的实例中。使用respondsToSelector:(类方法)来检测指定的类方法中是否存在于对应的类中。
[NSArray respondsToSelector:@selector(arrayWithObjects:count:)];
2.7 确认类是否可在运行期使用
使用NSClassFronString函数。传入类名称的字符串。如果返回值为空(nil),则表示这个类无法在这台装置上使用;反之,这个类可照你希望的在这台装置上使用。
if([NSClassFromString(@"NSJSONSerialization")!=nil]){
//TODO
}
3.结语
当然了Objective-C基础还有很多这里只是简单介绍一下,接下来我们还会继续深入了解,希望对大家简单的入门能有所帮助。