Swift已经出来快48小时了,我相信大家应该对Swift 与 Objective-C怎么去相互调用比较感兴趣,下文将教会你怎么让Swift 与 Objective-C相互调用 请跟着步骤一步一步来 一定要自己写代码 才能发现问题
1.新建一个Objective-C的工程
2.新建一个Swift文件
新建完成后会出现一个提示框 点击 “YES”
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
//
// SwiftObj.swift
// swift_objc
//
// Created by Anselz on 14-6-4.
// Copyright (c) 2014年 Anselz. All rights reserved.
//
import
Foundation
class
SwiftObj
: NSObject
{
func
sayHello
(
)
-
&
gt
;
Void
{
println
(
"Hello, I am Swift"
)
}
func
sayHelloWithObj
(
)
-
&
gt
;
Void
{
var
obj
=
Objective
(
)
obj
.
sayHello
(
)
}
}
|
3.新建一个Objecitve-C文件
.h为
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
//
// Objective.h
// swift_objc
//
// Created by Anselz on 14-6-4.
// Copyright (c) 2014年 Anselz. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface
Objective
: NSObject
-
(
void
)
sayHello
;
@end
|
.m文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
//
// Objective.m
// swift_objc
//
// Created by Anselz on 14-6-4.
// Copyright (c) 2014年 Anselz. All rights reserved.
//
#import "Objective.h"
@implementation
Objective
-
(
void
)
sayHello
{
NSLog
(
@"Hello, I am Objective-C"
)
;
}
@end
|
好了了,经过上面基本上穿件完成了,现在来在Objective-C中调用Swift了
找到main.m文件
引入Swift的类 在import引入 工程名+“-Swift.h”
如:#import “swift_objc-Swift.h”
这个是xcode给你桥接的时候生成好的
记下来main.m中可以写代码了
比如:
1
2
|
SwiftObj
*obj
=
[
[
SwiftObj
alloc
]
init
]
;
[
obj
sayHello
]
;
|
看看Log打印什么?
下面来讲Swift怎么调用Objective-C代码
找到 工程名 + “-Bridging-Header.h” 文件
如:swift_objc-Bridging-Header.h
这个也是xcode生成的
在这个文件中引入Objective-C的头文件,在Swift中就能调用了
如:
1
2
3
|
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//
|
1
|
#import "Objective.h"
|
然后在.swfit文件中 直接就能用这个Objective-C对象了
如:
1
2
3
4
|
func
sayHelloWithObj
(
)
-
&
gt
;
Void
{
var
obj
=
Objective
(
)
obj
.
sayHello
(
)
}
|
运行下,看看Log是不是你想要的结果。
此工程的代码在这里
Enjoy.