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

1,构造函数的迁移
Objective-C为:
HanggeMenuItem *starMenuItem1 = [[HanggeMenuItem alloc] initWithImage:storyMenuItemImage
                                                        highlightedContentImage:nil];
Swift:
var starMenuItem1 =  HanggeMenuItem(image:storyMenuItemImage, highlightedContentImage:nil)
2,变量的定义
Objective-C为:
UIImage *starImage = [UIImage imageNamed:@"icon-star.png"];
Swift:
var starImage =  UIImage(named:"icon-star.png")
3,数组
Objective-C为:
NSArray *menus = [NSArray arrayWithObjects:starMenuItem1, starMenuItem2, starMenuItem3];
Swift:
var menus =  NSArray(objects:starMenuItem1, starMenuItem2, starMenuItem3)
4,实现协议的方法
Objective-C为:
- (void)awesomeMenu:(AwesomeMenu *)menu didSelectIndex:(NSInteger)idx
{
    NSLog(@"Selected the index : %d",idx);
}
- (void)awesomeMenuDidFinishAnimationClose:(AwesomeMenu *)menu {
    NSLog(@"Menu was closed!");
}
Swift:
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方法:
if(self.delegate.respondsToSelector(Selector("HanggeSwiftMenuWillAnimateClose:"))){
    self.delegate.HanggeSwiftMenuWillAnimateClose(self)
}
而在Swift中使用?即可
self.delegate?.HanggeSwiftMenuWillAnimateClose(self)

在线代码转换工具

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,255评论 4 61
  • 前言 对于少量的代码,我们通常能够通过肉眼或者代码编辑器,甚至控制台出现的错误,找出对应有问题的代码行,可以进行排...
    itclanCoder阅读 1,460评论 1 2
  • 沉沦的天际映着点红 与远方的地平线交接处是一层黑 时间它忘却了步伐 在茫茫人海中欣赏着街灯与晚霞的对峙 这是个没有...
    走过河流阅读 218评论 0 4
  • 星巴克卖的是咖啡吗?不是,是舒适;苹果卖的是手机吗?不是,是审美;你的展示面照片显示的是你的生活吗?显示你很帅吗?...
    Play恋爱阅读 1,394评论 4 3
  • 有时候峰回路转是非常意外的,这其中的科学非常耐琢磨。 看了好久的洗衣机,一直想买,忽然有朋友说之前的有一点点分红,...
    泽阳9阅读 429评论 0 1