MyGems.h
#import <UIKit/UIKit.h>
@interface MyGems : UIViewController {
IBOutlet UIImageView *lock1;
收集.m
#import "Collect.h"
#import "MyGems.h"
@implementation Collect
- (IBAction) unlock {
if (lock1.hidden = NO) {
ruby.hidden = NO;
}
- 我收到 4 个错误,有人可以帮忙吗?这看起来很简单,但让我很困惑。
最佳答案
你几乎不应该这样做。 View Controller (MyGems
,其名称应类似于 MyGemsViewController
)负责管理此 View 。其他类不应访问并修改其 IBOutlet。当 MyGems 管理的 View 卸载并且 lock1
意外地变为 nil 时,这样做会给您带来严重的问题。
在这种情况下,尚不清楚 Collect
是什么;我认为它是另一个 View Controller ?我不清楚为什么 unlock
不是 MyGemsViewController
上的方法。
另请注意,此代码不正确,并且应该向您发出警告,告诉您它不正确:
if (lock1.hidden = NO) {
此将NO
分配给lock1.hidden
。您本来打算使用 ==
,但您永远不应该以这种方式测试 NO
。你应该这样做:
if (! lock1.hidden) {
在针对 YES
和 NO
测试 bool 值时必须小心。有许多真实值不等于 YES
。
关于iphone - 如何将另一个类文件中的 IBOutlet 使用到不同的 .m 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7881931/