• iOS: 了解下 XCode 曾用过的编译器


    之前聊到@property 的用法时,曾提到@Property 的变化是因XCode的变更引起的, 究其根本原因, 是XCode所用编译器发生变化造成的。
     
    在XCode4之前,Apple 所用的编译器是 GNU C Compiler (简称 GCC)。 自XCode4 后, Apple 将XCode的编译器改为 Low Level Virtual Machine (LLVM)。  
     
    在GCC编译器时代, 声明一个@property时,必须为这个property创建一个实例变量(instance variable);
     
    而在LLVM时代,不一定非得为这个@property创建实例变量, 当LLVM没有找到这个property对应的实例变量时,会自动地为它创建一个。这个在后台自动创建的实例变量,与@property 声明的变量,区别仅差一个下划线 (_)。
     
    代码示例: @property (copy, nonatomic)  NSString  *myName;
    默认隐藏创建的实例变量为:  _myName;   你直接调用这个_myName 实例变量, 是完全可用的 。
    比如: 在.m 文件中,进行以下操作: _myName = @"This is my name";   等同于 self.myName=  @"This is my name"; 
     
    小结:
    了解下 Xcode的编译器历史,有助于理解为什么Xcode 中的某些语法经常变来变去。 @Property的变化是其中之一。类似变化有: 在基于storyboard 创建的 tableview 中,自Xcode4 之后, 也无需判断可重用的cell 是否为空了。
  • 相关阅读:
    CSS选择器
    flex布局--微信小程序
    样式-微信小程序
    遇到的问题--微信小程序
    了解JavaScript
    事件系统-视图层-微信小程序
    WXS-视图层-微信小程序
    视图层-微信小程序架构
    场景值&逻辑层-微信小程序框架
    微信小程序配置
  • 原文地址:https://www.cnblogs.com/changningios/p/3983819.html
Copyright © 2020-2023  润新知