关于XCode7objc语法增强

  • 千呼万唤始出来的泛型语法

    目前只支持NSArray NSSet NSDictionary

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

泛型和id类型配合(kind of)
在Objc中 我们知道id是万能指针 可以呼出来任何继承NSObject的方法 配合泛型使用就是可以呼出来泛型的父类的所有方法

-[UIView subviewWithTag:]取出来是 个 UIView*
可以直接调用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宏 可以在混编时导入到Swift自定义名称

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

导入到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)
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值