Objective-C方法的声明实现及调用方法

 更新时间:2024年02月04日 14:34:55   作者:lcannal  
这篇文章主要介绍了Objective-C方法的声明实现及调用方法,包括五参数的方法和单个参数的方法,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧

1.无参数的方法

1)声明

a.位置:在@interface括弧的外面

b.语法:

- (返回值类型)方法名称;

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

2)实现

a.位置:在@implementation中实现

b.语法:加大括弧将方法实现的代码写在大括孤之中

@implementation Person;
-(void)run{
    NSLog(@"我在跑步");
}
@end

3)调用

a.方法是无法直接调用的,因为类是不能直接使用的,必须要先创建对象

b.语法:

[对象名 方法名];

int main(int argc, const char * argv[]) {
    Person *p = [Person new];
    [p run];
}

2.单个参数的方法

1)声明

a.位置:在@interface括弧的外面

b.语法:

-(返回值类型)方法名称:(参数类型)形参名称;

@interface Person : NSObject
-(void)eat:(NSString *)foodName;
@end

2)实现

a.位置:在@implementation中实现

b.语法:加大括弧将方法实现的代码写在大括孤之中

@implementation Person;
-(void)eat:(NSString *)foodName{
    NSLog(@"%@好美味!",foodName);
}
@end

3)调用

a.方法是无法直接调用的,因为类是不能直接使用的,必须要先创建对象

b.语法:

[对象名 方法名:实参];

int main(int argc, const char * argv[]) {
    Person *p = [Person new];
    [p eat:@"烤鱼"];
}

3.多个参数的方法

1)声明

a.位置:在@interface括弧的外面

b.语法:

-(返回值类型)方法名称:(参数类型)形参名称 :(参数类型)形参名称;

@interface Person : NSObject
-(int)sum:(int)num1 :(int)num2;
@end

2)实现

a.位置:在@implementation中实现

b.语法:加大括弧将方法实现的代码写在大括孤之中

@implementation Person;
-(int)sum:(int)num1 :(int)num2{
    int num = num1+num2;
    return num;
}
@end

3)调用

a.方法是无法直接调用的,因为类是不能直接使用的,必须要先创建对象

b.语法:

[对象名 方法名:实参:实参];

int main(int argc, const char * argv[]) {
    Person *p = [Person new];
    NSLog(@"sum=%d",[p sum:1 :1]);
}

运行结果

补充:

Objective-C中的“description“方法

在Objective-C中,每个对象都继承自NSObject类,在NSObject类中定义了一个名为`description`的方法。该方法用于返回一个字符串,描述对象的内容。默认情况下,`description`方法返回的字符串是该对象的类名和其在内存中的地址。

下面是一个重写`description`方法的示例代码:

@interface MyClass : NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic) NSInteger age;
@end
@implementation MyClass
- (NSString *)description {
    return [NSString stringWithFormat:@"MyClass: Name=%@, Age=%ld", self.name, (long)self.age];
}
@end

定义了一个叫做`MyClass`的类,它包含了`name`和`age`两个属性

重写了`description`方法,使用`NSString`的`stringWithFormat:`方法

将`name`和`age`的值拼接到一个描述字符串中,并返回

MyClass *myObject = [[MyClass alloc] init];
myObject.name = @"John";
myObject.age = 25;
NSLog(@"%@", myObject); // 输出: MyClass: Name=John, Age=25

通过重写`description`方法,你可以为自定义的类提供更有意义的描述信息,方便在日志输出和调试过程中使用。

需要注意的是,为了在控制台上输出一个对象的`description`内容,你可以使用`NSLog`方法,并将对象作为参数传递给`%@`占位符

到此这篇关于Objective-C方法的声明实现及调用的文章就介绍到这了,更多相关Objective-C方法的声明内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • iOS tableview实现顶部拉伸效果

    iOS tableview实现顶部拉伸效果

    这篇文章主要为大家详细介绍了iOS tableview实现顶部拉伸效果,以及头部拉伸效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • 实例讲解iOS应用的设计模式开发中的Visitor访问者模式

    实例讲解iOS应用的设计模式开发中的Visitor访问者模式

    这篇文章主要介绍了iOS应用的设计模式开发中的Visitor访问者模式的实例,示例代码为传统的Objective-C,需要的朋友可以参考下
    2016-03-03
  • iOS自定义日期demo分享

    iOS自定义日期demo分享

    这篇文章主要为大家详细介绍了iOS自定义日期演示效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • iOS开发中Quartz2D的基本使用方式举例

    iOS开发中Quartz2D的基本使用方式举例

    这篇文章主要介绍了iOS开发中Quartz2D的基本使用方式举例,需要的朋友可以参考下
    2015-11-11
  • iOS开发技巧之WeakSelf宏的进化详解

    iOS开发技巧之WeakSelf宏的进化详解

    在程序中我们经常用到Block,但写weak self 时会比较繁琐,下面这篇文章主要给大家介绍了关于iOS开发技巧之WeakSelf宏的进化的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们一起来看看吧
    2018-05-05
  • IOS 开发之 NSMutableArray与NSArray 的区别

    IOS 开发之 NSMutableArray与NSArray 的区别

    这篇文章主要介绍了IOS 开发之 NSMutableArray与NSArray 的区别的相关资料,希望通过本文能掌握这部分内容,需要的朋友可以参考下
    2017-09-09
  • IOS开发自定义view方法规范示例

    IOS开发自定义view方法规范示例

    这篇文章主要为大家介绍了IOS开发自定义view方法规范示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • iOS中表单列表样式键盘遮挡的解决方案

    iOS中表单列表样式键盘遮挡的解决方案

    这篇文章主要给大家介绍了关于iOS中表单列表样式键盘遮挡的解决方案,文中通过示例代码将解决的方法一步步介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2019-01-01
  • iOS9与XCode7中不能使用http连接的快速解决办法

    iOS9与XCode7中不能使用http连接的快速解决办法

    这篇文章主要介绍了iOS9与XCode7中不能使用http连接的快速解决办法,非常不错具有参考借鉴价值,感兴趣的朋友一起看看吧,需要的朋友可以参考下
    2016-10-10
  • 谈谈iOS中的多继承与多重代理

    谈谈iOS中的多继承与多重代理

    这篇文章主要给大家介绍了关于iOS中多继承与多重代理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-10-10

最新评论