Swift语言调用Objective-c

前端之家收集整理的这篇文章主要介绍了Swift语言调用Objective-c前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在Swift语言中可以直接调用Objective-C的类库,比如Foundation框架。

下面是一个简单的Objective-C的Hello World实现。

#import <Foundation/Foundation.h>

int main(int argc,const char* argv[])
{
    @autoreleasepool {
        //初始化字符串,类型为NSString
        NSString *string = [ [NSString alloc] initWithFormat:@"%@ %@",@"Hello",@"World"];

        //调用lowercaseString属性,将字符串转换为小写
        string = [string lowercaseString];

        //替换其中的world为objective-c
        string = [string stringByReplacingOccurrencesOfString:@"world" withString:@"objective-c"];

        ////输出结果
        NSLog(@"%@",string);
    }
}

下面是用Swift语言版本的实现。

import Foundation

var string = NSString(format: "%@ %@","hello","world")
string = string.lowercaseString
string = string.stringByReplacingOccurrencesOfString("world",withString: "swift")
print(string)

在Swift语言中,文件头部用import Foundation导入Foundation框架,初始化对象无需调用alloc方法,Objective-C初始化对象一般需要调用initWith开头的方法。Swift语言初始化对象只需要对象的名称加上括号即可,在括号中传参。

在Swift中调用Objective-C代码。新建一个Swift语言的项目,新建objective-c的头文件(Calculator.h)和实现文件(Calculator.m),添加.m文件时Xcode会提示是否创建Objective-C briding头文件,选Yes,会自动创建一个头文件,格式是”项目名-Bridging-Header”,在桥接文件中里写上 #include “Calculator.h”。
文件代码如下:
Calculator.h

#ifndef Calculator_h
#define Calculator_h
#include <Foundation/NSObject.h>

@interface Calculator : NSObject
@property (nonatomic,assign) int first;
@property (nonatomic,assign) int second;

-(id) init;//空构造函数
-(id) initWithFirst:(int)first second:(int) second;//带参数的构造函数
-(int)add;//加
-(int)sub;//减

@end

#endif /* Calculator_h */

Calculator.m

#include "Calculator.h"

@implementation Calculator

@synthesize first;
@synthesize second;

-(id) init
{
    if (self = [super init]) {
        self.first = 1;
        self.second = 1;
    }
    return self;
}

-(id) initWithFirst:(int)newFirst second:(int)newSecond
{
    if (self = [super init]) {
        self.first = newFirst;
        self.second = newSecond;
    }
    return self;
}

-(int)add
{
    return self.first + self.second;
}

-(int)sub
{
    return self.first - self.second;
}

@end

TestSwift-Bridging-Header.h

#include "Calculator.h"

main.swift

import Foundation

var cal = Calculator()
print(cal.add())
print(cal.sub())

cal = Calculator(first:20,second:2);
print(cal.add())
print(cal.sub())

输出结果:
2
0
22
18
结果符合预期.

参考资料: 1.《Swift语言实战入门》,人民邮电出版社,伍星、罗飞等著.

原文链接:https://www.f2er.com/swift/324894.html

猜你在找的Swift相关文章