将Ojective-C代码移植转换为Swift代码

相比于Objective-C,Swift语言更加简练。有时我们需要把原来写的一些Objective-C代码转换成Swift,下面总结了各种常见的情况。

1,构造函数的迁移

Objective-C为:


1

2

HanggeMenuItem *starMenuItem1 = [[HanggeMenuItem alloc] initWithImage:storyMenuItemImage

                                                        highlightedContentImage:nil];

Swift:


1

var starMenuItem1 =  HanggeMenuItem(image:storyMenuItemImage, highlightedContentImage:nil)

2,变量的定义

Objective-C为:


1

UIImage *starImage = [UIImage imageNamed:@"icon-star.png"];

Swift:


1

var starImage =  UIImage(named:"icon-star.png")

3,数组

Objective-C为:


1

NSArray *menus = [NSArray arrayWithObjects:starMenuItem1, starMenuItem2, starMenuItem3];

Swift:


1

var menus =  NSArray(objects:starMenuItem1, starMenuItem2, starMenuItem3)

4,实现协议的方法

Objective-C为:


1

2

3

4

5

6

7

- (void)awesomeMenu:(AwesomeMenu *)menu didSelectIndex:(NSInteger)idx

{

    NSLog(@"Selected the index : %d",idx);

}

- (void)awesomeMenuDidFinishAnimationClose:(AwesomeMenu *)menu {

    NSLog(@"Menu was closed!");

}

Swift:


1

2

3

4

5

6

7

8

func awesomeMenu(menu:AwesomeMenu, idx:Int)

{

     println("Selected the index : %d",idx)

}

func awesomeMenuDidFinishAnimationClose(menu:AwesomeMenu)

{

     println("Menu was closed!")

}

5,检测代理是否实现某个方法

Objective-C中协议继承自NSObjectProtocol协议,如果协议需要回调和检测某个代理是否实现了某个方法,使用NSObjectProtocol的respondsToSelector方法:


1

2

3

if(self.delegate.respondsToSelector(Selector("HanggeSwiftMenuWillAnimateClose:"))){

    self.delegate.HanggeSwiftMenuWillAnimateClose(self)

}

而在Swift中使用?即可


1

self.delegate?.HanggeSwiftMenuWillAnimateClose(self)

(附:在线代码转换工具)

时间: 2024-10-14 07:13:28

将Ojective-C代码移植转换为Swift代码的相关文章

iOS开发——混编Swift篇&OC移植为swift

将Ojective-C代码移植转换为Swift代码 2015-03-09 15:07发布:yuhang浏览:201 相比于Objective-C,Swift语言更加简练.有时我们需要把原来写的一些Objective-C代码转换成Swift,下面总结了各种常见的情况. 1,构造函数的迁移 Objective-C为: 1 HanggeMenuItem *starMenuItem1 = [[HanggeMenuItem alloc] initWithImage:storyMenuItemImage 2

在oc代码中使用swift第三方框架

swift现在使用越来越多了,一些主流的框架或者效果比较好的demo都陆陆续续使用swift写了.所以,要学会如何在oc的项目中调用swift. 这里主要借助一个桥梁文件,这个桥梁文件一般在你导入swift代码或者创建swift代码的时候会询问你是否创建,这个时候要选择创建,然后就可以在oc项目里引入桥梁文件,从而可以创建swift对象,使用其相应方法了. 但是这里有可能会出现oc中无法调用swift代理方法的情况,下面两个学习资料对这块有比较详细的介绍,可以学习一下. 参考资料:iOS-Swi

【转】使用2to3将代码移植到Python 3

你的位置: Home ? Dive Into Python 3 ? 难度等级: ♦♦♦♦♦ 使用2to3将代码移植到Python 3 ? Life is pleasant. Death is peaceful. It’s the transition that’s troublesome. ?— Isaac Asimov (attributed) 概述 几乎所有的Python 2程序都需要一些修改才能正常地运行在Python 3的环境下.为了简化这个转换过程,Python 3自带了一个叫做2to

使用Xcode HeaderDoc和Doxygen文档化你的Objective-C和Swift代码

在一个应用的整个开发过程中涉及到了无数的步骤.其中一些是应用的说明,图片的创作,应用的实现,和实现过后的测试阶段.写代码可能组成了这个过程的绝大部分,因为正是它给了应用生命,但是这样还不够,与它同等重要的还有代码的注释和文档编写.不管代码写的有多好,如果缺少了对应的好的注释文档,很有可能在将来带来麻烦.不幸的是,许多开发者都忽视或忽略了代码文档的重要性,而这非常糟糕,因为好的程序不仅仅是好的代码.它需要更多的东西. 谈到编写注释文档,显然我不是说仅仅简单的在实现文档里添加几行注释.肯定是更多的东

将 Objective-C 代码迁移到 Swift(Swift 2.0更新)-b

本节内容包括: 为你的Objective-c代码做好迁移准备 (Preparing Your Objective-C Code for Migration) 迁移过程(The Migration Process) 问题解决提示(Troubleshooting Tips and Reminders) 迁移工作提供了一个重新审视现有 Objective-C 应用程序的机会,并通过 替换部分Swift 代码来更好的优化应用程序的架构,逻辑以及性能.换句话说,所谓增量app迁移,就是让你使用之前的工具-

最详细的 Swift 代码规范指南

1. 代码格式 1.1 使用四个空格进行缩进. 1.2 每行最多160个字符,这样可以避免一行过长. (Xcode->Preferences->Text Editing->Page guide at column: 设置成160即可) 1.3 确保每个文件结尾都有空白行. 1.4 确保每行都不以空白字符作为结尾 (Xcode->Preferences->Text Editing->Automatically trim trailing whitespace + Incl

编程算法 - 把字符串转换为整数 代码(C)

把字符串转换为整数 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 写一个函数StrToInt, 模拟atoi的功能, 把字符串转换为整数. 须要考虑异常处理, 正负数, 还有Int的最大值(0x7FFFFFFF)和最小值(0x80000000)等情况. 代码: /* * main.cpp * * Created on: 2014.7.12 * Author: spike */ #include <stdio.h> #include &l

Dalvik指令分析(一) 字节码转换为smali代码

有过android应用反编译或者再打包的朋友都有使用过apktool的经验,apktool能将dex文件的 字节码转换为smali代码,这个工具是怎么做到对dex进行解析并生成smali代码的呢?这就需要对 dex文件的格式很熟悉.需要掌握dalvik指令的字节码格式,并能翻译成对应的smali代码. 我准备写一系列的文章来分析dex文件的格式.dalvik字节码的格式.以及dex to smali的方法, 基于此可以做很多的应用,比如安全扫描.应用加固等等! Dalvik指令介绍请参考官方文档

如何才能编写高性能的 Swift 代码

文档中的一些技巧可以帮助提升您的 Swift 程序质量,使您的代码不容易出错且可读性更好.显式地标记最终类和类协议是两个显而易见的例子. 然而文档中还有一些技巧是不符合规矩的,扭曲的,仅仅解决一些比编译器或语言的特殊的临时性需求.文档中的很多建议来自于多方面的权衡,例如:运行时.字 节大小.代码可读性等等. 启用优化 第一个应该做的事情就是启用优化.Swift 提供了三种不同的优化级别: -Onone: 这意味着正常的开发.它执行最小优化和保存所有调试信息. -O: 这意味着对于大多数生产代码.