[背景]
拿到一个oc的项目,去参考代码时,发现有个变量:
找不到定义的地方。
并且用command+鼠标点击,结果调转到:
去掉下划线前缀的变量的定义:
现在是需要:
搞定这个变量到底是什么含义,如何来的
然后才能把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中有个加了前缀下划线的变量找不到定义