2011-07-10 19 views
5

私はXcodeプロジェクトを再作成しようとしていましたが、 "'initWithFrame:reuseIdentifier'は廃止されました。ここ はコードです:'initWithFrame:reuseIdentifier'は廃止されました

- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier { 
if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier]) { 
    UIView *myContentView = self.contentView; 

    self.todoPriorityImageView = [[UIImageView alloc] initWithImage:priority1Image]; 
    [myContentView addSubview:self.todoPriorityImageView]; 
    [self.todoPriorityImageView release]; 

    self.todoTextLabel = [self newLabelWithPrimaryColor:[UIColor blackColor] 
              selectedColor:[UIColor whiteColor] fontSize:14.0 bold:YES]; 
    self.todoTextLabel.textAlignment = UITextAlignmentLeft; // default 
    [myContentView addSubview:self.todoTextLabel]; 
    [self.todoTextLabel release]; 

    self.todoPriorityLabel = [self newLabelWithPrimaryColor:[UIColor blackColor] 
               selectedColor:[UIColor whiteColor] fontSize:10.0 bold:YES]; 
    self.todoPriorityLabel.textAlignment = UITextAlignmentRight; 
    [myContentView addSubview:self.todoPriorityLabel]; 
    [self.todoPriorityLabel release]; 

    // Position the todoPriorityImageView above all of the other views so 
    // it's not obscured. It's a transparent image, so any views 
    // that overlap it will still be visible. 
    [myContentView bringSubviewToFront:self.todoPriorityImageView]; 
}return self;} 

私はif文の開始とLINE2のエラーを取得しています。 この関数は明らかにもはや使用するadviceableではありません、それは今、この機能である:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 

self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
if (self) { 
    // Initialization code. 
} 
return self;} 

私は本当に私が上記の機能を変更し、新しい機能でそれを置くことができるのか分かりません!この問題についていくつかお手伝いできますか?

Thxを

ケビン

+0

可能重複[非推奨メソッドのinitWithFrameを使用しないのUITableViewCell:reuseIdentifier](http://stackoverflow.com/questions/2815121/ uitableview-cell-use-deprecated-method-initwithframereuse識別子を使用しない) –

答えて

5

新しい初期化子ではなく、セルの枠CGRectを指定すると、あなただけの[super initWithFrame:frame reuseIdentifier:reuseIdentifier]でスーパークラスに枠を与えていたのUITableViewCellStryleを使用しています。ですから、if文を使わずに、同じコードをすべて新しいバージョンに入れても問題はありません。

あなたが持っていた:

- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier { 
    if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier]) { 
     // all your stuff 
    } 
    return self; 
} 

は、あなたが今持っている:の

- (id)initWithStyle:(UITableViewCellStyle)style 
    reuseIdentifier:(NSString *)reuseIdentifier { 
    if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { 
     // all your stuff 
    } 
    return self; 
}