Class1
、、、がClass2
ありSubclassOfClass2
ます。SubclassOfClass2
から入っているメソッドを呼び出したいClass1
。そうです:
Class2 *class = [[Class2 alloc] init];
[class someMethod];
しかし、私が推測するように、のためにalloc
、その後すべての変数値が失われています。なぜなら:
実行時Class2
に実行されています。たとえば、変数を設定しますfloat x = image.size.width
。そして、それは正しい値を返します。後で、たとえばユーザーがボタンを押した後、Class1
実行されています。変数someMethod
から呼び出した後、を返します。変数の値が失われないように機能させるにはどうすればよいですか?Class1
x
0.00000
私が尋ねられたように、ここに私のsomeMethod
コードがあります:
-(void)someMethod {
NSLog(@"%f", x);
}
実行時にそのメソッドが返さ3200.00000
れ、メソッドから呼び出されるClass1
とが返されます0.00000
。変数x
はで宣言されClass2
、メソッドsomeMethod
はで宣言されますSubclassOfClass2
Class1.h
@interface Class1
@end
Class1.m
#import "Class1.h"
#import "Class2.h"
@implementation Class1
-(IBAction)buttonPressed:(id)sender {
Class2 *class = [[Class2 alloc] init];
[class someMethod];
}
@end
Class2.h
@interface Class2 {
float x;
}
@end
Class2.m
#import "Class2.h"
#import "SubclassOfClass2.h"
@implementation Class2
- (id)initWithCoder:(NSCoder *)coder {
x = 3200;
[self someMethod];
return self;
}
@end
SubclassOfClass2.h
#import "Class2.h"
@interface Class2 (subclass) {
}
-(void)someMethod;
@end
SubclassOfClass2.m
#import "SubclassOfClass2.h"
@implementation Class2 (subclass)
-(void)someMethod {
NSLog(@"%f", x);
}
@end