Class1、、、がClass2ありSubclassOfClass2ます。SubclassOfClass2から入っているメソッドを呼び出したいClass1。そうです:
Class2 *class = [[Class2 alloc] init];
[class someMethod];
しかし、私が推測するように、のためにalloc、その後すべての変数値が失われています。なぜなら:
実行時Class2に実行されています。たとえば、変数を設定しますfloat x = image.size.width。そして、それは正しい値を返します。後で、たとえばユーザーがボタンを押した後、Class1実行されています。変数someMethodから呼び出した後、を返します。変数の値が失われないように機能させるにはどうすればよいですか?Class1x0.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