最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

[已解决]Object-C中有个加了前缀下划线的变量找不到定义

Object-C crifan 3541浏览 0评论
[背景]
拿到一个oc的项目,去参考代码时,发现有个变量:
oc code underline prefix var
找不到定义的地方。
并且用command+鼠标点击,结果调转到:
去掉下划线前缀的变量的定义:
click jump to no prefix var
现在是需要:
搞定这个变量到底是什么含义,如何来的
然后才能把oc代码去转换到swift代码。
[解决过程]
1.搜:
object-c variable prefix _ underscore
参考:
变量加上前缀下划线:
本身并没有什么意义:
只是为了区分,本地局部变量和synthesize类型的(类的成员,域)属性
基本搞清楚了synthesize和ivar,property等方面的含义后,接着,就明白了:
之前找不到的变量:
_selectedIndex
实际上是系统根据:
MHTabBarController.h
@property(nonatomic,assign)NSUIntegerselectedIndex;
之后,内部自动帮你生成了
NSUInteger _selectedIndex
所以后面
MHTabBarController.m
中才能直接使用_selectedIndex了。
然后对应的:
类似于
@property xxx
然后:
NSUInteger lastIndex = _selectedIndex;
 _selectedIndex=NSNotFound;
self.selectedIndex= lastIndex;
这种OC的代码,如果改为swift,则可,暂时写成:
   varselectedIndex:UInt=0
    private var _selectedIndex:UInt = 0

    funcreloadTabButtons() {
        var lastIndex:UInt = _selectedIndex
       _selectedIndex=UInt(Foundation.NSNotFound)
        self.selectedIndex = lastIndex;
    }
凑合用吧。
如果有问题,再说。

转载请注明:在路上 » [已解决]Object-C中有个加了前缀下划线的变量找不到定义

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
84 queries in 0.497 seconds, using 22.21MB memory