将Ojective-C代码移植转换为Swift代码
生活随笔
收集整理的這篇文章主要介紹了
将Ojective-C代码移植转换为Swift代码
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
相比于Objective-C,Swift語言更加簡練。有時(shí)我們需要把原來寫的一些Objective-C代碼轉(zhuǎn)換成Swift,下面總結(jié)了各種常見的情況。
1,構(gòu)造函數(shù)的遷移 Objective-C為:
Swift:
2,變量的定義 Objective-C為:
Swift:
3,數(shù)組 Objective-C為:
Swift:
4,實(shí)現(xiàn)協(xié)議的方法 Objective-C為:
Swift:
5,檢測代理是否實(shí)現(xiàn)某個(gè)方法 Objective-C中協(xié)議繼承自NSObjectProtocol協(xié)議,如果協(xié)議需要回調(diào)和檢測某個(gè)代理是否實(shí)現(xiàn)了某個(gè)方法,使用NSObjectProtocol的respondsToSelector方法:
而在Swift中使用?即可
(附:在線代碼轉(zhuǎn)換工具)
1,構(gòu)造函數(shù)的遷移 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,數(shù)組 Objective-C為:
| 1 | NSArray *menus = [NSArray arrayWithObjects:starMenuItem1, starMenuItem2, starMenuItem3]; |
| 1 | var menus =? NSArray(objects:starMenuItem1, starMenuItem2, starMenuItem3) |
4,實(shí)現(xiàn)協(xié)議的方法 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,檢測代理是否實(shí)現(xiàn)某個(gè)方法 Objective-C中協(xié)議繼承自NSObjectProtocol協(xié)議,如果協(xié)議需要回調(diào)和檢測某個(gè)代理是否實(shí)現(xiàn)了某個(gè)方法,使用NSObjectProtocol的respondsToSelector方法:
| 1 2 3 | if(self.delegate.respondsToSelector(Selector("HanggeSwiftMenuWillAnimateClose:"))){ ????self.delegate.HanggeSwiftMenuWillAnimateClose(self) } |
| 1 | self.delegate?.HanggeSwiftMenuWillAnimateClose(self) |
(附:在線代碼轉(zhuǎn)換工具)
轉(zhuǎn)載于:https://www.cnblogs.com/Free-Thinker/p/4838380.html
總結(jié)
以上是生活随笔為你收集整理的将Ojective-C代码移植转换为Swift代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何更好地利用泰山的文化资源?
- 下一篇: Dev-GridView-对于gridv