微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift和Objective-C的不同

声明类

Objective-C
    
    [<#Content#> class]
    
    ------------------------------------------------------------------------
    
    Swift
    
    <#content#>.self

打印一个对象所属类型

Objective-C
    
    // 打印一个对象所属类型
    NSLog(@"%@",[object class]);
Swift
    
    // 打印一个对象所属类型
    print("返回的类型是:--->\(<#object#>.dynamicType )");

拿到AppDelegate

Objective-C
    
    // 拿到 AppDelegate
    AppDelegate *tempAppDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    
    -----------------------------------------------------------
    
    Swift
    
    // 拿到 AppDelegate
    let tempAppDelegate = UIApplication .sharedApplication().delegate as! AppDelegate;

反序列化

Objective-C
    
    // 苹果自带反序列化 返回类型id
    NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingallowFragments error:&error];
    
    -------------------------------------------------
    
    Swift
    
    do {
        
        // 苹果自带反序列化
        let dict = try NSJSONSerialization.JSONObjectWithData(jsonData!,options: .AllowFragments)
        
        // 继续下一步操作
        
    } catch {
        
        print(error);
    }

类型转换和判断

Objective-C
    
    // 类型判断
    if ([<#object#> isKindOfClass:[<#Class#> class]]) {
        
        // 类型转换
        <#Class#> *<#Name#> = (<#Class#> *)<#object#>;
        
    }
    
    -------------------------------------------------
    
    Swift

    // 判断 类型
    if <#object#>.isKindOfClass(<#Class#>) == false {
        
        return;
        
    }
    
    // 类型转换
    let <#Name#> = <#object#> as! <#Class#>;

dealloc/控制器被释放

Objective-C
    // 控制器被释放时 调用方法
    - (void)dealloc {
        printf("控制器释放");
    }
    -------------------------------------------------
    Swift
    // 析构器方法 类似于Object-C的 dealloc
    deinit {
         print("控制器释放");
    }

获取字符串长度

Objective-C

    // 获取字符串长度
    string.length
    -------------------------------------------------
    Swift
    
    // 获取字符串长度
    string.characters.count

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐