私は2つのクラスを持っていWorkout
ますAction
. には、保存されたデータとデータを取得し、それらの を作成するWorkout
というメソッドがあります。現在、このクラスには、このメソッドを簡単にするために記述したファクトリ メソッドがありますが、ファクトリ メソッドの 1 つを呼び出そうとすると、Xcode から「セレクタ 'initWithName:andCount` の既知のクラス メソッドがありません」と表示されます。associateActionsAndCounts
NSString
NSInteger
Action
Action
Action.h
#import <Foundation/Foundation.h>
@interface Action : NSObject
+(Action *)initWithName:(NSString*)name;
+(Action *)initWithName:(NSString*)name andCount:(NSInteger*)count;
+(Action *)initWithName:(NSString*)name andCount:(NSInteger*)count andImage:(UIImage*)image;
@property UIImage *image;
@property NSString *name;
@property NSInteger *count;
@end
Action.m
#import "Action.h"
@implementation Action
@synthesize image;
@synthesize name;
@synthesize count;
#pragma mark - factory methods
+(Action *)initWithName:(NSString *)name {
Action *newAct = [Action alloc];
[newAct setName:name];
return newAct;
}
+(Action *)initWithName:(NSString*)name andCount:(NSInteger*)count {
Action *newAct = [Action alloc];
[newAct setName:name];
[newAct setCount:count];
return newAct;
}
+(Action *)initWithName:(NSString *)name andCount:(NSInteger *)count andImage:(UIImage *)image {
Action *newAct = [Action alloc];
[newAct setName:name];
[newAct setCount:count];
[newAct setImage:image];
return newAct;
}
@end
Workout.m - associateActionsAndCounts
(アクションとカウントは ivar です)
-(void)associateActionsAndCounts {
for (int i=0;i<actions.count;i++) {
NSString *name = [actions objectAtIndex:i];
NSString *num = [counts objectAtIndex:i];
Action *newAction = [Action initWithName:name andCount:num]; //no known class method for selector
[actionsData addObject:newAction];
}
}
編集:
Michael Dautermannの提案により、私のコードは次のようになります。
-(void)associateActionsAndCounts {
for (int i=0;i<actions.count;i++) {
NSString *actionName = [actions objectAtIndex:i];
NSInteger num = [[NSString stringWithString:[counts objectAtIndex:i]] intValue];
Action *newAction = [Action actionWithName:actionName andCount:num];
[actionsData addObject:newAction];
}
}
Action.h
+(Action *)actionWithName:(NSString*)name;
+(Action *)actionWithName:(NSString*)name andCount:(NSInteger*)count;
+(Action *)actionWithName:(NSString*)name andCount:(NSInteger*)count andImage:(UIImage*)image;
しかし、私はまだ同じエラーが発生しています。
セレクター「actionWithName:andCount」の既知のクラス メソッドはありません