当前位置:首页 > 技术知识 > 正文内容

Objective C interface(objective什么意思)

maynowei7个月前 (08-02)技术知识110

在Objective C里面,interface基本可以理解为其他语言里面的class。

当然也有些不同。

首先我们可以新建一个Objective-C的file。



这里我们添加一个MyClass.m和一个MyClass.h文件。

使用@interface 来定义一个类,使用@implementation来写实现。

MyClass.h

#import <Foundation/Foundation.h>

@interface MyClass : NSObject
- (void) hello;
@end

MyClass.m

#import "MyClass.h"
#import <Foundation/Foundation.h>

@implementation MyClass

- (void) hello {
    NSLog(@"HelloWorld");
    return;
}

@end

这里定义了一个方法hello,没有输入参数,也没有返回值,答应log "HelloWorld"。


#import用于引入头文件,和C的#include类似,只是#import本身可以保证相同的文件只被包含一次。不用像C语言一样,使用宏来控制头文件引入一次。

主程序如下:

#import <Foundation/Foundation.h>
#import "MyClass.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        MyClass *myClass = [[MyClass alloc] init];
        [myClass hello];
    }
    return 0;
}

使用alloc和init方法来构造MyClass的一个实例。调用myClass的hello方法来输出"HelloWorld"。在Objective-C里面成为发送一个hello消息。


运行结果如下。

这是一个基本的@interface,只包含了一个方法。

相关文章

微软宣布SQL Server 2016,2005版将结束支持

IT之家讯 在芝加哥Ignite大会上,微软宣布了SQL Server 2016,并将于今年夏季发布公开预览版。SQL Server是由微软开发的关系型数据库管理系统,用于软件应用请求数据的存储和管理...

btrace 3.0 重磅新增 iOS 支持!免插桩原理大揭秘!

重磅更新btrace 是由字节跳动抖音基础技术团队自主研发的面向移动端的性能数据采集工具,它能够高效的助力移动端应用采集性能 Trace 数据,深入剖析代码的运行状况,进而辅助优化提升移动端应用的性能...

Linux系统编程:条件变量为什么要用锁

条件变量可以解决线程同步和共享资源访问的问题,条件变量是对互斥锁的补充,它允许一个线程阻塞并等待另一个线程发送的信号,当收到信号时,阻塞的线程被唤醒并试图锁定与之相关的互斥锁。具体定义如下:等待:in...

什么?Java 中的锁还有状态?(java中的锁都有哪些类型)

线程如果锁住了某个资源,致使其他线程无法访问的这种锁被称为悲观锁,相反,线程不锁住资源的锁被称为乐观锁,而自旋锁是基于 CAS 机制实现的,CAS又是乐观锁的一种实现,那么对于锁来说,多个线程同步访问...

6 张图带你彻底搞懂分布式事务 XA 模式

XA 协议是由 X/Open 组织提出的分布式事务处理规范,主要定义了事务管理器 TM 和局部资源管理器 RM 之间的接口。目前主流的数据库,比如 oracle、DB2 都是支持 XA 协议的。mys...

Docker安装Oracle 11g 数据库过程详解

1、查看docker 版本[root@node3 ~]# docker version Client: Version: 18.09.6 API version:...