一、NSString
最简单创建字符串的方式:
NSString *str = @"hello world" ;
相当于 char *name = "hello world";
Objective-C的另一种创建字符串格式的方式:
int age = 20;
int no = 10;
NSString *str = [NSString stringWithFormat:@"My age is %d and no is %d",age,no];
这种方式是NSString的格式化方式。
二、多文件开发
其实我们在开发项目时往往会用到很多类,但不可能把全部声明和实现都放在一个.m文件中,于是多文件开发的作用发挥了。多文件开发有利于多人开发,增强了代码的可读性和可移植性。
Xcode常用注释:
三、点语法
用点语法来替换set方法和get方法给写程序带来很多便利,通常是创建一个对象,然后利用对象来调用方法。
点语法替换set方法:
对象名.成员变量名 = 值;
相当于:[对象名 成员变量的set方法:值];
点语法替换get方法:
变量类型 成员变量 = 对象名.成员变量名;
相当于 :变量类型 成员变量 = [对象名 成员变量名];
例如下面这段代码就是点语法的运用:
Student *stu = [Student new];
[stu setAge:20];
int age= [stu age];
//替换成如下代码就是点语法的运用
stu.age = 20;
int age = stu.age;
点语法的本质就是方法的调用。在使用点语法时要特别注意:
在set方法中使用 self.变量 = 变量;可能会引起死循环
四、成员变量的作用域
成员变量也有自己的作用域,有4种类型:
--> @private: 只能在当前类的实现@implementation中直接访问
--> @protected: 可以在当前类以及子类的实现@implementation中直接访问(默认方式)
--> @public:任何地方都可以直接访问
--> @package:同一个“体系内”(框架)可以访问,介于@private和@public之间
注意:
在类的实现@implementation中也可以也可以定义成员变量!但这种情况下,成员变量是私有的,即使写成其他几个方式也无济于事,在类的实现中成员变量名不可以和@interface中声明的成员变量名相同。
@inerface Person : NSObject
{
double _weight; // 默认是@protected
@public
int _age; // 在程序任何地方都可以通过变量名这直接访问
@private
double _height; // 只有当前类的对象方法能中直接访问
@protected
NSString * _address; // 能在当前类和子类的对象方法中直接访问
}
@end
@implementation Person : NSObject
{
NSString *_name; // 默认是@private
@public
double _height; // 无效的@public,在implementation中声明的成员变量只能是@private其他任何方式均无效
}
@end
五、@property和@synthesize
@property和@synthesize的出现使得OC编程更为便利
@property:
--> 用在@interface中
--> 用来自动生成set方法和get方法的声明
--> 用@property int age;就可以代替下面的两行
- (void)setAge:(int)age;
- (int)age;
@synthesize:
--> 用在@implementation中
--> 用来自动生成set方法和get方法的实现
--> 用@synthesize age = _age;就可以替换
- (void)setAge:(int)age
{
_age = age;
}
- (int)age
{
reutrn _age;
}