将Ojective-C代码移植转换为Swift代码
相比于Objective-C,Swift语言更加简练。有时我们需要把原来写的一些Objective-C代码转换成Swift,下面总结了各种常见的情况。
Swift:
2,变量的定义
Swift:
3,数组
Swift:
4,实现协议的方法
Swift:
5,检测代理是否实现某个方法
而在Swift中使用?即可
(附:在线代码转换工具)
1,构造函数的迁移
Objective-C为:
1
2
|
HanggeMenuItem *starMenuItem1 = [[ HanggeMenuItem alloc] initWithImage:storyMenuItemImage highlightedContentImage: nil ]; |
1
|
var starMenuItem1 = HanggeMenuItem (image:storyMenuItemImage, highlightedContentImage: nil ) |
2,变量的定义
Objective-C为:
1
|
UIImage *starImage = [ UIImage imageNamed:@ "icon-star.png" ]; |
1
|
var starImage = UIImage (named: "icon-star.png" ) |
3,数组
Objective-C为:
1
|
NSArray *menus = [ NSArray arrayWithObjects:starMenuItem1, starMenuItem2, starMenuItem3]; |
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!" ); } |
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 ) } |
1
|
self .delegate?. HanggeSwiftMenuWillAnimateClose ( self ) |
(附:在线代码转换工具)
分类:
Swift语言
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2014-09-25 Android 出现警告Exported service does not require permission
2013-09-25 Android中的JSON详细总结