我正在尝试远程调整对象myImageView
的{{1}}到alpha
0
类来自另一个类MyViewController
(它是一个NSObject子类)。
Assistant
中的
Assistant.h
#import <Foundation/Foundation.h>
@class MyViewController;
@interface Assistant : NSObject {
MyViewController *myViewController;
UIImageView *button;
}
- (void)adjustAlpha:(id)sender;
@property (nonatomic, retain) UIImageView *button;
中的
Assistant.m
该方法确实被调用,但#import "MyViewController.h"
@implementation Assistant
@synthesize button;
- (id)init
{
self = [super init];
if (self)
{
myViewController = [[MyViewController alloc] init];
NSLog(@"alloced?: %@", myViewController ? @"YES" : @"NO");
}
return self;
}
- (void)adjustAlpha:(id)sender
{
NSLog(@"method called");
myViewController.myImageView.alpha = 0;
}
没有改变,为什么?我需要修理的地方?谢谢你阅读^ _ ^
修改
这是MyViewController类:
MyViewController.h
myViewController.myImageView.alpha
MyViewController.m
@class Assistant;
@class MyAppAppDelegate;
@interface MyViewController : UIViewController <UITextViewDelegate, UIScrollViewDelegate>
{
UIImageView *myImageView;
Assistant *assistant;
}
@property (nonatomic, retain) UIImageView *myImageView;
这个问题变得复杂,需要一些实验,所以只要挂在那里,就会在我有时间的时候说清楚。对于开发人员遇到了同样的问题:声明你需要在单例类中访问的对象,可以从任何其他类轻松访问,以及圣诞快乐!
答案 0 :(得分:1)
仅当myImageView
在MyViewController
类的.h文件中声明为全局范围变量(也称为iVar)并且其属性为{{1}时,此方法才有效在.m。
(nonatomic, retain)
如果这听起来像你正在做的那样,那么请你发布@synthesize
h和m文件的内容。
答案 1 :(得分:1)
如果您拥有像Thomas所描述的所有内容,您可以检查主线程上是否调用了adjustAlpha
方法吗?