これは、このエラーが発生したときの元のコードです
ClassA.h
+(ClassA *)methodA:(NSData *)data;
@property (nonatomic, strong) NSMutableArray *arr; @property (nonatomic, strong) RXMLElement *rxmlRoot;
@終わり
ClassA.m
+(ClassA *)methodA:(NSData *)data {
//NSLog(@"class is %@",[name class]); ClassA *ClassA = [[Stores alloc] init]; arr = [NSMutableArray array]; rxmlRoot = [RXMLElement elementFromXMLData:data];
}
コードを確認していますが、コードを修正するための2つのオプションがあります
オプションA
ClassA.h
+(ClassA*)methodA:(NSData*)data; @property (nonatomic, strong) NSMutableArray *arr; @property (nonatomic, strong) RXMLElement *rxmlRoot; @end
ClassA.m
+(ClassA*)methodA:(NSData*)data { //NSLog(@"class is %@",[name class]); ClassA *ClassA = [[Stores alloc] init]; ClassA.arr = [NSMutableArray array]; <----- this has been modified ClassA.rxmlRoot = [RXMLElement elementFromXMLData:data];<----- this has been modified }
オプションB
ClassA.h
+(ClassA*)methodA:(NSData*)data; @end
ClassA.m
static RXMLElement *rxlRoot; <----- this has been added as class variable static NSMutableArray *arr; <----- this has been added as class variable +(ClassA*)methodA:(NSData*)data { //NSLog(@"class is %@",[name class]); ClassA *ClassA = [[Stores alloc] init]; arr = [NSMutableArray array]; rxmlRoot = [RXMLElement elementFromXMLData:data];
}
optionAまたはoptionBのいずれかを試しましたが、コンパイラーは何も文句を言わず、コードは正しく機能します。
optionBに続いて、クラス変数を作成する投稿がたくさんあります。
質問:optionAは、クラスメソッドとクラス変数も扱う場合に従うのに適した方法です。
この問題について私にアドバイスしてください。ちなみに、どこかで間違いを犯した場合は、訂正してください。ありがとう