一 了解一下,找参考资料
1.看书学习object-c语法,第一本看的是《objective-c程序设计》。
2.官网:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html
二 定义类
1. 格式
object-c中定义类的方式和c#不同,它分为两个部分,一般放在两个独立的文件中:
①在@interface部分声明类,文件格式.h;
②在@implementation部分实现类,文件格式.m。
2.@interface 部分
Fraction.h
#import <Foundation/Foundation.h>
@interface Fraction : NSObject
-(void)setAge:(int)age;
-(int)getAge;
@end
以上代码有几点说明:
①NSObject是默认的父类;
②方法前面的负号(-)表示这是一个实例方法;如果是正号(+)表示这是一个类方法。
3. @implementation 部分
Fraction.m
#import "Fraction.h"
@implementation Fraction
{
int _age;
}
-(void)setAge:(int)age
{
_age=age;
}
-(int)getAge
{
return _age;
}
@end
4.调用
注意:@autoreleasepool引入了自动计数处理内存释放问题;看一下对象初始化和方法调用的格式。
main.m
#import <Foundation/Foundation.h>
#import "Fraction.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
//对象初始化
Fraction *fraction=[Fraction alloc];
fraction=[fraction init];
//调用方法
[fraction setAge:100];
int age=[fraction getAge];
//打印结果
NSLog(@"the age is %i",age);
}
}
三 基本数据类型
1. 基本类型
object-c的几种基本数据类型: int ,float,double,char
2.float类型
NSLog转换字符为 %f或者%g
NSLog(@"The float result is %f",f);//The float result is 1.230000
NSLog(@"The float result is %g",f);//The float result is 1.23
3.字符串
用@开头并且放在双引号中的字符串是NSString字符串类型。
各类型的NSLog输出转换如下:
int main(int argc,const char* argv[]){
@autoreleasepool{
int a=100;
NSLog(@"the integer value is %i",a);
float f=1.23;
NSLog(@"The float result is %f",f);//The float result is 1.230000
NSLog(@"The float result is %g",f);//The float result is 1.23
double d=1.2345;
NSLog(@"The double value is %e",d);//The double value is 1.234500e+000
char c='V';
NSLog(@"The char value is %c",c);//The char value is V
}
return 0;
}
4.id类型
id数据类型可以存储任何类型的对象。id类型是多态和动态绑定的基础。
5.布尔类型
objective-c中的布尔值是YES和NO.
int main(int argv,const char * argc[])
{
@autoreleasepool {
for(int i=2;i<=50;i++)
{
bool isPrime=YES;
for(int j=2;j<i;j++)
{
if(i%j==0)
{
isPrime=NO;
continue;
}
}
if(isPrime==YES)
&nb