文档章节

第01天OC语言(13):方法和函数的区别

lyh2017iOS
 lyh2017iOS
发布于 2017/07/11 00:07
字数 384
阅读 5
收藏 0

#####一、概念


/*
 函数 和 方法的 区别
  1.函数属于整个文件, 方法属于某一个类
    方法如果离开类 就不行
  2.函数可以直接调用
 注意 :  虽然函数属于整个文件,但是如果把函数 写在 类的声明中 会不识别
 方法的注意点 : 
    方法可以没有声明 只有实现
    方法可以只有声明没有实现,编译不会报错,但是运行会报错
     如果方法 只有声明 没有实现, 那么运行时会报错 :  reason: '+[Person demo]: unrecognized selector sent to class 0x100001140' ---class
    发送了一个不能识别的消息, 在Person类中 没有+开头的 demo方法
 reason: '-[Person test]: unrecognized selector sent to instance 0x100103560' ---instance
 
 类也有一个注意点 : 
 类 可以只有实现 没有声明
 注意 : 在开发中 不建议这样写
 */

#####二、代码

#import <Foundation/Foundation.h>
#pragma mark 类

//@interface Person : NSObject
//// 对象方法声明
//- (void)test;
//// 类方法声明
////+ (void)demo;
//
//
///*
//// 外部函数声明
//extern void sum();
//// 内部函数声明
//static void minus();
//// 外部函数
//extern void sum()
//{
//    printf("sum");
//}
//// 内部函数
//static void minus()
//{
//    printf("minus");
//}
// */
//
//@end

@implementation Person :NSObject
// 对象方法实现
- (void)test
{
    NSLog(@"test");
}
// 类方法实现
+ (void)demo
{
    NSLog(@"demo");
}

@end

#pragma mark 函数
// 外部函数声明
extern void sum();
// 内部函数声明
static void minus();
// 外部函数
extern void sum()
{
    printf("sum");
}
// 内部函数
static void minus()
{
    printf("minus");
}

#pragma mark main函数
int main(int argc, const char * argv[])
{
//    demo();
//    [Person sum];
//    [Person demo];
//    [Person demo];
    Person *p = [Person new];
    [p test];


    return 0;
}

image.png

image.png

image.png

image.png

image.png

image.png

© 著作权归作者所有

共有 人打赏支持
lyh2017iOS
粉丝 1
博文 357
码字总数 137380
作品 0
朝阳
OC语言的特性(一)-消息传递与调用函数的表现形式

我们在初学Objective-C时,都会觉得ObjC中的消息传递和其他语言的调用函数差不多,只是在OC中,方法调用用消息传递这一概念来代替。 那么到底怎样区别OC中的消息传递与其他语言的调用函数呢。...

浩浩老师
2015/09/08
1K
0
Swift编程权威指南第2版 读后收获

  自从参加工作一直在用OC做iOS开发。在2015年的时候苹果刚推出swift1.0不久,当时毕竟是新推出的语言,大家也都很有激情的学习。不过在学完后发现很难在实际项目中使用,再加上当时公司项...

滴水微澜
08/14
0
0
Swift4.0基础知识回顾

简单介绍一下Swift Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序,Swift语言让应用开发更简单、更快、更稳定,确保最终应用有着更好的质量更多了解Swift可以去《The...

博行天下
2017/12/06
0
0
从 OC 到 Swift 的快速入门与专业实践

只会介绍与 OC 有明显区别的地方,不会介绍 OC 中没有的,比如元组。当前总结也只是蜻蜓点水而已,但是有 OC 的基础,看这些已经足够。 一、数据 Swift 是类型安全的语言: Swift 必须明确数...

CoderHG
08/04
0
0
Runtime运行时机制

想深入理解Objective-C这门动态语言就不得不深入理解下它的“动态”是如何实现的。早先拜读过《Effective Objective-C 2.0》就让我更深入的窥探到OC运行时特别之处,本文当中也有部分内容借鉴...

Mister志伟
2017/12/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式块存储的引擎如何设计?

前言: 目前在万兆网络和SSD,包括NVMe SSD 都已经非常普及。随着硬件的速度越来越快,性能的瓶颈会从硬件转移到软件。尤其对于存储引擎来说,性能至关重要。 先来看一下我们会对数据存储引擎...

Java干货分享
6分钟前
0
0
docker(五):docker-compose.yml 配置

docker-compose.yml常用命令 image 指定镜像名称或者镜像id,如果该镜像在本地不存在,Compose会尝试pull下来。 示例: image: java build 指定Dockerfile文件的路径。可以是一个路径,例如...

开心的哈士奇
10分钟前
0
0
Tale的升级真是惊心动魄,吓死人

精心动魄的博客升级计划,Tale 这几天在筹划将分散在其他几个地方的博客统一到这里来,也就留意了tale的更新,发现出现了2.0.1版本; 因此动了升级的念头,唉! 高估了个人开放着的系统规划能...

硅步积千里
20分钟前
0
0
tcc分布式事物

因为最近公司的新退货系统用到了spring cloud。所以会涉及到一些分布式事物。 所以需要先了解一下,分布式事物。 shuaiqiyu / hmily 高性能异步分布式事务TCC框架 谭纳 / spring-cloud-rest-...

miaojiangmin
21分钟前
0
0
20181016 上课截图

小丑鱼00
27分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部