Object-C函数的书写格式有点奇怪,特别是写参数特别奇怪,下面就探讨一下函数的使用.
+表示静态方法
-表示类方法
普通函数
1.
无返回值
不带参数
-(void) 函数名
{
函数体
}
-(void) 函数名:(参数类型1)参数1
函数名:(参数类型2) 参数2
函数名:(参数类型3) 参数3
{
函数体
}
例子:
/*
*带多个参数
*/
-(void)sum:(int)start:
andEnd:(int)end
andName:NSString *name
andFlag:bool flag
{
int sum = 0;
//for
//NSLog(@"%i====%i",start,end);
for(int i = start; i<= end; i++ )//0~100
{
sum = sum + i;
}
NSLog(@"sum = %i",sum);
NSLog(@"%@",name);
sum = 0;
int i = 0;
//do while
do{
i++;
sum = sum + i;
}while(i<end-start+1);
NSLog(@"sum = %i",sum);
sum = 0;
i = 0;
//while
while(i<end - start +1)
{
if(i%7 == 0){
NSLog(@"被7整除的数:%d",i);
}
i++;
sum = sum + i;
}
//NSLog(@"sum = %i",sum);
}
2.有返回值
-(返回值类型) 函数名
{
函数体
return 返回值;
}
-(返回值类型)函数名:(参数类型2) 参数2
函数名:(参数类型3) 参数3
{
函数体
return 返回值;
}
例子:
-(BOOL)login
{
BOOL flag = false;
int a = 2;
int b = 3;
if(a>b){
flag = true;
}else{
flag = false;
}
return flag;
}
主函数调用
int main(int argc, const char * argv[])
{
@autoreleasepool {
test *t = [[test alloc] init];
[t sum:1 :100,@"hello dragon",true];
BOOL flag = [t login];
if(flag){
NSLog(@"返回真");
}else{
NSLog(@"返回假");
}
return 0;
}
}
构造函数
例子:
//
// Student.h
// ObjectC_04
//
// Created by 5016 on 13-11-15.
// Copyright (c) 2013年 dradon. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Student : NSObject
{
//成员属性
NSString *_name;
int _age;
}
//构造函数声明
-(void)setName:(NSString*)name
andAge:(int)age;
//成员函数
-(void)print;@end
//
// Student.m
// ObjectC_04
//
// Created by 5016 on 13-11-15.
// Copyright (c) 2013年 dradon. All rights reserved.
//
#import "Student.h"
@implementation Student
//构造函数实现
-(void)setName:(NSString*)name
andAge:(int)age
{
_name = name;
_age = age;
}
//成员函数
-(void)print
{
NSLog(@"我是%@,今年%d岁",_name,_age);
}
@end
//
// main.m
// ObjectC_04
//
// Created by 5016 on 13-11-15.
// Copyright (c) 2013年 dradon. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
Student *student = [[Student alloc] init];
[student setName:@"dragon" andAge:23];
[student print];
}
return 0;
}