首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在UIScrollView中初始化UIView显示警告:“本地声明hids实例变量”

在UIScrollView中初始化UIView显示警告:“本地声明hids实例变量”
EN

Stack Overflow用户
提问于 2013-01-27 22:15:13
回答 2查看 465关注 0票数 0

在下面的行(myScrollView.delegate = self;)上有一个警告:Local declaration of 'myScrollView' hides instance variable。我的问题是,为什么会发生这种事?

myViewController.h

代码语言:javascript
复制
@interface myViewController : UIViewController
{
    UIScrollView *myScrollView;
}

myViewController.m

代码语言:javascript
复制
UIScrollView *myScrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
myScrollView.delegate = self; // Warning: Local declaration of 'myScrollView' hides instance variable
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-27 22:20:24

局部变量与实例变量的名称相同。将myViewController.m的第一行更改为:

代码语言:javascript
复制
myScrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];

你不应该再犯错误了。

票数 4
EN

Stack Overflow用户

发布于 2013-01-27 22:17:43

之所以会发生这种情况,是因为您声明了一个与实例变量同名的局部变量。只要局部变量在作用域中,就将分配给myScrollView变量分配给局部变量,而不是分配给实例变量。实际上,您的目的似乎是分配实例变量myScrollView,而不是本地变量。在这种情况下,您需要移除变量名前面的类型。

这只是一个警告,而不是错误。编译器告诉您,代码的这个区域可能会让您的代码读者感到困惑(在您编写代码的那一刻起,经过足够的时间之后,您也会感到困惑)。重新命名局部变量以提高代码的可读性是一个好主意。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14552950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档