關(guān)于XCode7你以為只有Swift (objc語法增強)

寫在開頭 iOS開發(fā)者 群532084214 給大家提供一個交流技術(shù) 也可以聊天打屁的平臺

  • 千呼萬喚始出來的泛型語法

目前只支持NSArray NSSet NSDictionary

 NSArray<UIImage *> *images;
 NSDictionary<NSString *, NSURL *> *resourcesByName;

泛型和id類型配合(kind of)
在Objc中 我們知道id是萬能指針 可以呼出來任何繼承NSObject的方法 配合泛型使用就是可以呼出來泛型的父類的所有方法

-[UIView subviewWithTag:]取出來是 個 UIView*
可以直接調(diào)用UIView的方法

 UIButton *button = [view subviewWithTag:0]; // okay: UIButton is a UIView
[[view subviewWithTag:0] setTitle:@"Bounded" forState:  UIControlStateNormal]; //
okay: method found in UIButton
UIResponder *responder = [view subviewWithTag:0]; 
 // okay:      UIView is a UIResponder
 NSString *string = [view subviewWithTag:0]; 
// error: UIView is unrelated to NSString
  • NS_SWIFT_NAME宏 可以在混編時導(dǎo)入到Swift自定義名稱

    typedef NS_ENUM(NSInteger, DisplayMode) {
   DisplayMode256Colors NS_SWIFT_NAME(With256Colors),
   DisplayModeThousandsOfColors,
   DisplayModeMillionsOfColors
 };

導(dǎo)入到Swift就是

 @objc enum DisplayMode : Int {
   case With256Colors
   case ThousandsOfColors
   case MillionsOfColors
}

再比如

@interface MyController : UIViewController
 + (instancetype)standardControllerForURLKind:(URLKind)kind
 NS_SWIFT_NAME(init(URLKind:));
 @end

到swift就是

   class MyController : UIViewController {
   init(URLKind kind: URLKind)
 }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容