Skip to content

amswf/IphoneDevelopStudy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

object-c基础(本人主页:http://amswf.com

调试函数


NSLog(@"hello world!");
NSLog(@"%@",name); //打印字符串
NSLog(@"%c",a); //打印单个字符
NSLog(@"%i",isTrue);//打印布尔值
NSLog(@"%i",i); //打印整形变量
NSLog(@"%f",f); //打印单精度浮点数
NSLog(@"%.2f",f); //打印单精度浮点数,且只保留两位小数
NSLog(@"%e",f); //打印科学技术法
NSLog(@"i=%i,f=%f",i,f);//同时打印两个整数

变量

变量分类

object-c中变量分成三种:基本数据类型,对象类型,id类型。

  • 基本数据类型有:int,float,double,char类型和BOOL(YES NO)。
  • 对象类型就是类或协议所声明的指针类型:NSString *str = @"我是字符串";
  • id类型可以表示任何类型,一般只是表示对象类型,不表示基本数据类型。
  • nil

变量定义


int a = 2;
NSString *str = @"我是字符串";
定义规则:变量类型在前,变量名在后。

在XCode中选择File->New->File...->Cocoa Touch->Object-c Class->填上类名和继承关系后,XCode就会生成想要的新类。新类会产生两个新文件,一个是.h结尾,一个是.m结尾。
.h文件用来描述类,类的属性和方法
.m文件用来实现.h中定义的属性和方法。

////////////////////Calculator.h////////////////////

#import \ @interface Calculator : NSObject { int numerator;//分子 int denominator;//分母 } -(void)print; -(void)setNumerator:(int)n ; -(void)setDenominator:(int)d; @end

////////////////////Calculator.m////////////////////

#import "Calculator.h"
@implementation Calculator
-(void)print{
NSLog(@"numerator=%i,denominator=%i",numerator,denominator);
}
-(void)setNumerator:(int)n{
numerator = n;
}
-(void)setDenominator:(int)d{
denominator = d;
}
@end


在类的定义中-表示类的实例方法,+表示类方法

循环和条件语句

循环

int num;
num = 0;
for (int n =0; n <5; n++) {
num += n;
NSLog(@"%i",num);
}
#### 条件语句 if(){

}else if(){

}else{

}
#### switch语句 switch(){
case :
break;
case :
break;
case :
break;
default:
break;
}

存取方法


在.h文件中用@property定义变量
在.m文件中使用@synthesize指令

//////////////////////Calculator.h/////////////////////

#import \
@interface Calculator : NSObject
{
int numerator;//分子
int denominator;//分母
}
//存取方法
@property int numerator,denominator;
-(void)print;
-(void)setNumerator:(int)n ;
-(void)setDenominator:(int)d;
@end

////////////////////Calculator.m////////////////////

#import "Calculator.h"
@implementation Calculator
@synthesize numerator,denominator;
-(void)print{
NSLog(@"numerator=%i,denominator=%i",numerator,denominator);
}
-(void)setNumerator:(int)n{
numerator = n;
}
-(void)setDenominator:(int)d{
denominator = d;
}
@end

多参数方法

带参数名的方法


.h中
-(void)setDenominator:(int)d setNumerator:(int)n;
.m中

-(void)setDenominator:(int)d setNumerator:(int)n{
numerator = n;
denominator = d;
}

不带参数名的方法


.h中
-(void)set:(int)d :(int)n;
.m中

-(void)set:(int)d:(int)n{
numerator = n;
denominator = d;
}


调用:
[calc set:1:3];

局部变量


在函数内部声明的变量为局部变量。
在函数中声明的变量前加上static后,局部变量可以保存多次方法调用所得的值。
@class XYPoint方法可以让编译器不使用import 'XYPoint.h'的情况下把XYPoint当成类来使用

objc中的hasOwnPreotry方法

@selector

处理异常

@try{

}
@catch(NSException *err){

}

分类


分类可以为已有的类添加新的方法,并且可以分散实现
为NSString添加新方法

#import \
@interface NSString (NewString)
-(int)toNumber;
@end
#import "NSString+NewString.h"
@implementation NSString (NewString)
-(int)toNumber{
return 123;
}
@end

协议


协议相当于as中的接口:多个类共享的方法列表

#import \
@protocol ICar
-(void)run;
@end

实现协议

#import \
#import "ICar.h"

@interface Car : NSObject
-(void)run;
@end

Object-c2.0增加两个协议修饰符@optional和@required

#import \
@protocol ICar
-(void)run;
@optional
-(void)start;
@required
-(void)swing;
@end

这个协议里面有两个必须实现的方法run和swing,有一个选择实现的方法start

静态属性和方法

静态属性

在Object C的语法中声明后的static静态变量在其他类中是不能通过类名直接访问的,它的作用域只能是在声明的这个.m文件中。 static 属性只能定义在implementation中,而不能定义在interface中,而且写在implementation之外或者方法之中。

#import "Person.h"
static int count;
@implementation Person
@synthesize age;
@synthesize name;
-(void) write{
NSLog(@"姓名:%@ 年龄:%i",name,age);
}
+(void) hello{
count++;
NSLog(@"static = %i",count);
}
@end

静态方法

静态方法 就是将 "-" 改为 "+" 即可。
  +(void) hello; 在interface中定义如上方法签名,而在implementation中实现这个方法。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published