iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – 变量范围目标C.大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

方法调用完成后,方法中声明的变量是否被擦除?即如果我有方法“someMethod”并且每次调用它我想从堆栈属性返回不同的NSString将返回堆栈上的下一个对象或者它将保持返回第一个索引,因为x被删除了方法调用结束.我知道C是否在函数调用后删除了变量,它在目标c中是否相同?会为变量x使用单独的属性这个问题吗?谢谢 (DoublE) someMethod{ int x; [self.stack ob
方法调用完成后,方法中声明的变量是否被擦除?即如果我有方法“someMethod”并且每次调用它我想从堆栈属性返回不同的NSString将返回堆栈上的下一个对象或者它将保持返回第一个索引,因为x被删除方法调用结束.我知道C是否在函数调用删除了变量,它在目标c中是否相同?会为变量x使用单独的属性这个问题吗?谢谢

(DoublE) someMethod{
int x;
[self.stack objectATindex:x];
x++;
}@H_674_22@ 
 

阅读完评论之后,我尝试创建一个替换x的属性,这里是我写的但是我收到一条错误警告,声明“本地声明”_LOCATIOn“隐藏实例变量”这是什么意思?

@property (nonatomiC) int LOCATIOn;
@synthesize LOCATIOn=_LOCATIOn;

-(int) LOCATIOn{
    if(!_LOCATIOn){
        int _LOCATIOn = 0;
     //warning is here 
    return _LOCATIOn;
     }
_LOCATIOn++;
return _LOCATIOn;

}

 (DoublE) someMethod{
int x;
[self.stack objectATindex:self.LOCATIOn];
x++;
}@H_674_22@

解决方法

Objective C方法在C函数“顶部”实现,因此适用相同的规则.特别是,您的代码表现出未定义的行为(读取未初始化的变量).

解决此问题,请添加实例变量x代替您的代码段当前声明的自动变量.

automatic是“堆栈”变量的“官方”名称,即您在方法/函数中声明的变量.

大佬总结

以上是大佬教程为你收集整理的objective-c – 变量范围目标C.全部内容,希望文章能够帮你解决objective-c – 变量范围目标C.所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。