2011-06-19 8 views
0

私のiPhoneアプリケーションのビューでは、ABTableViewCellhttps://github.com/enormego/ABTableViewCell)のサブクラスを使用しています。これはかなりシンプルなセルですが、私は必要なスクロール速度にこれを使用したかったのです。ここでABTableViewCellと画像を追加する

は、ファイルのヘッダーです:

@interface WHUserTableViewCell : ABTableViewCell { 

    NSString* Name; 
    NSString* DetailsText; 
    UIImage* UserImage; 

} 

@property (nonatomic, copy) NSString* Name; 
@property (nonatomic, copy) NSString* DetailsText; 
@property (nonatomic, copy) UIImage* UserImage; 

私は画像の上に「コピー」を使用することによって、私は唯一のiOS 4.2とアップをサポートしていますが、それは私が後で修正するかもしれない何かであることを知っています。

私はアトビッツはこのように、プロパティのカスタム設定方法を作成することによって、このセルを使用する方法は、次のとおりです。「UserImage」プロパティに割り当てられている画像は、シングルトンクラスから来ている

- (void) setUserImage:(UIImage *) userImage 
{ 
    [UserImage release]; 
    UserImage = [userImage copy]; 
    [self setNeedsDisplay]; 
} 

- (void) setName:(NSString *) name 
{ 
    [Name release]; 
    Name = [name copy]; 
    [self setNeedsDisplay]; 
} 

- (void) setDetailsText:(NSString *) detailsText 
{ 
    [DetailsText release]; 
    DetailsText = [detailsText copy]; 
    [self setNeedsDisplay]; 
} 

をこれは、画像のキャッシュおよびダウンロードを提供する。そのクラスは画像の「所有者」でなければなりません。

唯一の問題は、細胞deallocsたら、と私はすべてのプロパティ[UserImage release]ライン上のアプリケーションがクラッシュを解放し、ここに私のdeallocメソッドだ、ある:ちょうどアトビッツのように、

- (void)dealloc 
{ 
    [super dealloc]; 

    [UserImage release]; 
    [Name release]; 
    [DetailsText release]; 
} 

は、このセルは、カスタム描画を使用しています彼の有名なブログ記事でこれについて説明しています。このために画像を処理するための正しい、最も速い方法は何ですか。イメージを扱うために私のシングルトンのキャッシング/ダウンロードクラスを使い続けたいと思いますが、イメージオブジェクトをコピーしているので、それが問題の原因ではないと私は考えています。

答えて

1

[super dealloc];は、- (void)deallocの最後の行にする必要があります。

関連:Why do I have to call super -dealloc last, and not first?

+0

何とか私はこれを完全に見落としました。私はそれを移動し、今動作します。どのように私がこれを逃すことができるか分からない:(あなたの助けとそのような明白な質問/答えてくれてありがとう。 –

関連する問題