2012-05-11 21 views
0

私はクラスを初期化し、同じinitパラメータを複数のインスタンスに渡す方法について頭を悩ましています。私はそれを1つのアウトレット(instance1)で動作させることができます。しかし、インスタンスごとに変数を書き直すことなく、インスタンス2で動作させるにはどうすればよいでしょうか?IOS Obj C:同じ値を持つ複数のIBOutletインスタンスを初期化する

ViewController.h:

ViewController.m
#import "CustomClass.h" 

@interface MYViewController : UIViewController 

@property (unsafe_unretained, nonatomic) IBOutlet CustomClass *instance1; 
@property (unsafe_unretained, nonatomic) IBOutlet CustomClass *instance2; 

@end 

#import "CustomClass.h" 

@implementation MYViewController; 

@synthesize instance1, instance2; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    instance1.variable1 = option1; 
    instance1.variable2 = 4.5; 
    instance1.variable3 = instance1.value; 
    [instance1 addTarget:self action:@selector(instance1DidChange) forControlEvents:UIControlEventValueChanged]; 

答えて

0

ループはあなたのためにそれを行う必要があります...

@implementation MYViewController; 

@synthesize instance1, instance2; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    for (int i = 0; i =< 1; i++) { 
     MyClass *newInstanceVariable = [[MyClass alloc] init]; 
     newInstanceVariable.variable1 = option1; 
     newInstanceVariable.variable2 = 4.5; 
     newInstanceVariable.variable3 = instance1.value; 
     [newInstanceVariable addTarget:self action:@selector(instance1DidChange) forControlEvents:UIControlEventValueChanged]; 
     instanceVariableName = [NSString stringWithFormat:@"instance%i",i]; 
     [self valueForKey:instanceVariableName] = newInstanceVariable; 
    } 
} 

は、あなたが探しているものにかなり近いはずです。

0

は基本的に、あなたはNSSetやNSArrayのにインスタンスを追加し、どちらかそれを反復したり、設定したりするKey-Value Codingを使用したいです値。これらのコンセントが概念的には、同じ初期値を持つような独立したオブジェクト群ではなく、まとまったものであれば、IBOutletCollectionをIBOutletの代わりに使用して、それらをすべて配列に保持することができます。いくつかのKVCと

関連する問題