• OCSwift 区别 2019-09-26 15:34:11
    OCSwift 区别 一、block = 闭包 OC——block typedef void(^successBlock)(NSURL* url,id data); swift——闭包 typealias successBlock = (NSURL, AnyObject) -> Void; @escaping 逃逸闭包 :闭包...

    OC 与 Swift 区别

    一、block = 闭包

    OC——block

    typedef void(^successBlock)(NSURL* url,id data);

     

    swift——闭包

    typealias  successBlock = (NSURL, AnyObject) -> Void;

     

    @escaping 逃逸闭包 :闭包在函数执行完后才被调用,调用的地方超过了这函数的范围,eg:网络请求结束后的回调的闭包,因为发起请求后过了一段时间后这个闭包才执行.

    @noescape 非逃逸闭包(默认) : 闭包在这个函数结束前被调用,eg:我们常用的Masonry和Snapkit的添加约束方法,因为这闭包是马上执行的。

     

    二、class

    OC——[object isKindOfClass:[NSArray class]]

             [object isKindOfClass:[NSDictionary class]]

     

    swift——data is [Any]   //array

               data is [String: Any]  //dictionary

               data is NSNumber

     

    三、set & get 方法

    OC——

    - (void)setModel:(SquareLiveListModel *)model {

        _model = model;

    }

     

    swift——

        privatepublic可去掉

        var cName:String {

            get {return self.cName}

            set (newTitle) {

                //如果没有定义 newTitle,可以使用 newValue

                self.cName = newTitle

            }

        }

    swift 中我们 不能使用  _model 来表示 OC 中@property 修饰的变量值 。在set&get方法中直接调用 会崩溃,故swift中用一个中间变量newValue来实现功能

     

    四、willSet & didSet

    var name: String? {

            //在属性name即将被赋值前 执行

            willSet {

                // newValue —— 待赋 新值, 此时属性name的值还是之前久值

                if newValue, newValue != name {

                }

            }

            //在属性name被赋值后执行

            didSet {

                

            }

        }

     

    五、SEL

    OC——  @selector(btnEvent:)

    - (void)btnEvent:(UIButton *)sender {

    }

     

    swift—— #selector(btnEvent:)

    @objc func btnEvent(sender: UIButton) {

    }

     

    六、guard

    guard self.feed != nil else{

             //self.feed==nil则返回0

                return 0

            }

    if语句相同的是,guard也是基于一个表达式的布尔值去判断一段代码是否该被执行。与if语句不同的是,guard只有在条件不满足的时候才会执行这段代码。你可以把guard近似的看做是Assert,但是你可以优雅的退出而非崩溃。

     

     

     

    OC——

    后续待。。

     

     

    展开全文
  • SEL是selector的缩写,selector在OC中作用是定义一个方法变量,通过该方法变量来调用方法。我们在后面的UI中会经常用selector来调用事件方法。下面我将举两个例子来说明SEL的使用。 直接通过方法名来调用,我们先...
  • MBProgressHUD.h #import #import "MBProgressHUD.h" #define SNS_DEPRECATED_ATTRIBUTE __attribute__((deprecated)) typedef enum _tagShowType{    EST_NORMAL=0,
  • Swift 学习 用 swift 调用 oc 2019-07-03 07:14:22
    开发过程中 很可能 把swift不成熟的地方用成熟的oc 代码来弥补一下 , 下面简单来学习一下,我也是照着视频 学习的 卖弄谈不上 就是一次学习笔记, 具体问题还是具体分析吧. 需求 给展出出来的的图片 添加触摸点击响应...
  • iOS-一行代码搞定复杂的UIBarButtonItem创建(OC+Swift
  • OC的理解与特性 OC作为一门面向对象的语言,自然具有面向对象的语言特性:封装、继承、多态。它既具有静态语言的特性(如C++),又有动态语言的效率(动态绑定、动态加载等)。总体来讲,OC确实是一门不错的编程...
  • Swift语言中,有很多封装类并没有,如果需要使用到,就需要桥接OC语言中的类,这时候就需要使用桥接头文件,一下是使用的步骤:创建一个Swift项目Demo,然后新建一个OC语言的文件如图:创建一个BgImgView的类,选择...
  • 当js调用swift 或者oc方法时,我们可以用拦截的方式,进行交互。 例如有这样一个js方法 function buttonclick() { // body.. //这个地方可以用iframe进行拦截 //window.location.href = “#{‘do’:’button...
  • 我们平常敲的Objective-C代码,底层实现其实是C/C++代码....使用的clang编译器编译成cpp,xcodebuild负责将OC/Swift工程编译成xxx.app,xcrun负责给xxx.app签名并打包成xxx.ipa #import <Foundation...
  • 首先,@selector方法选择器是OC中很常用的一个关键字,无论是计时器相应方法,通知效应方法,按钮相应方法,自省判断是否能相应某个方法,都会用到@selector,OC中常用生成@selector的格式如下:- (void)func1{ ...
  • SEL 和 字符串 之间的转换 2019-06-24 12:12:55
    SEL 变量名 = NSSelectorFromString(方法名字的字符串); //注意 变量名 不是指针 可以运行中用SEL变量反向查出方法名字字符串 NSString *变量名 = NSStringFromSelector(SEL参数); 转载于:...
  • OC高度总结 2018-05-17 17:31:57
    在面试中,我们经常会遇到一些原理性的问题,很常识但很难用通俗的语言解释清楚,这也是大部分业务级程序员经常失误的地方。虽然写了多年代码,但是核心思想不清,导致自己的后续发展...OC的面向对象 运行时Runtime
  • OC语言之Protocol基本使用 2016-07-17 21:15:40
     +在写java的时候都会有接口interface这个概念,接口就是一堆方法的声明没有实现,而在OC里面Interface是一个类的头文件的声明,并不是真正意义上的接口的意思,在OC中接口是由一个叫做协议的protocol来实现的 ...
  • swift学习笔记 - Unicode转码 2016-08-30 15:17:17
    现在用swift写了一个新项目,发现String和NSString还是有很大不同的,在Unicode转码上遇到了问题,我写了一个扩展,把以前OC的转码用swift重写了一遍,发现也能用,下面把我用swift做Unicode转码的代码贴在这里,亲...
  • 作者:fengsh998 ... 转载请注明出处 ...如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢!...在OC中使用好好的performSelector,但不知为什么在swift有意的被拿掉了。更有甚者
  • IOS开发中常用的有OCswift,其中OC是可以兼容C语言的,所以通过比较C与OC的差异,可以帮助我们更好的去学习OC语言。 区别: 1.文件后缀的差异 C语言中文件的后缀有.c(源文件) .o(目标文件) .out(可执行文件) .h...
  • Swift Runtime,OC Runtime
  • OC动态调用方法 2019-09-24 03:33:31
    获取Class的三种方式:  1/ Class clazz_1 = NSStringFromClass(@"ClassName");  2/ Class clazz_2 = [ClassName class];  3/ Class clazz_3 = [ClassInstance class];  可以直接使用clazz_x来创建对应的类...
  • Swift实战技巧 2019-07-26 00:12:16
    OC转战到Swift,差别还是蛮大的,本文记录了我再从OC转到Swift开发过程中遇到的一些问题,然后把我遇到的这些问题记录形成文章,大体上是一些Swift语言下面的一些技巧,希望对有需要的人有帮助 OC调用方法的处理...
  • 判断NSTextView和NSTextField的回车跟...OC代码 #pragma mark - NSTextFieldDelegate - (BOOL)control:(NSControl *)control textView:(NSTextView *)textView doCommandBySelector:(SEL)commandSelector { if ([N...
1 2 3 4 5 ... 20
收藏数 901
精华内容 360