2011-11-15 2 views
0

このはSHOULDをシンプルにしてください。代わりに、それは最後の1時間ほど、私からの地獄を混同しています。私が何をしていても、この変数は値の変更を拒否します


ヘッダファイル:

CellBackgroundViewのUIViewから派生したカスタムクラスです。

@interface CustomCell : UITableViewCell { 

    CellBackgroundView *customBackgroundView; 

} 

@property (strong) CellBackgroundView *customBackgroundView; 


期待どおりに動作しませんコード:

私がやりたいすべてはcustomBackgroundViewに何かを割り当てるです。

customBackgroundView = [[CellBackgroundView alloc] initWithFrame:CGRectZero]; 
    [self addSubview:customBackgroundView]; 

-

何も起こりません。デバッガでは、customBackgroundViewが0x0であることがわかります。次のいずれかは動作しませんが、 "バックグラウンド"にメモリ位置が割り当てられます。 customBackgroundViewはまだ0x0です。

CellBackgroundView *background = [[CellBackgroundView alloc] initWithFrame:CGRectZero]; 
    customBackgroundView = background. 
    [self addSubview:customBackgroundView]; 


何が起こっていますか?なぜこれは機能しませんか? ARCをオンにしました。


EDITS:CellBackgroundViewの

基礎は次のとおりです。

また
- (BOOL) isOpaque { 
    return NO; 
} 

-(void)drawRect:(CGRect)aRect { 
    //Custom drawing code 
} 

私はのUITableViewCellの公式の 'backgroundView' プロパティを使用する場合、上記のコードはうまく働きました。それは場合に役立ちます

+0

CellBackgroundViewの実装に関連するものは何ですか?カスタムのinitWithFrameのように? – djromero

+0

'CellBackgroundView'に' initWithFrame: 'メソッドを投稿できますか? CGRectZeroを渡すとnilが返される可能性があります。 – jbat100

+0

@madmw私はそのクラスの基礎を投稿しました。最下部の編集をご覧ください。 –

答えて

1

最後に、答えは確かにXcodeが壊れていることです。

または、デバッガがあります。変数を何に設定したとしても、Xcodeはデバッガでの表示を拒否します。しかし、コードは実際には正常に動作します。

アップルで修正してください。

+1

最新のiOSでxCode 4.2をお試しください。私もxCode 4.0で直面している問題に直面しています! – tipycalFlow

1

@property (nonatomic,retain) CellBackgroundView *customBackgroundView; 

の代わりstrongを試してみて、見...私がUIViewのにタイプを変更し、メモリ割り当ての問題

+0

違いはありませんが、良いアイデア。私はまた、 '割当て'を試みました、その運もありません。 –

+0

あなたもプロパティを合成したに違いありません...それ以外の場合は警告が表示されます – tipycalFlow

+0

はい、合成されています。私は自分のセッターとゲッターを書いて、これが何とかそれを台無しにしていると思っていました。それでも、同じ行動! –

0

であるように思われます。私は不動産を取り去り、宣言を合成しました。私はプロジェクトを「きれいにした」。

だから私のコードは今ある:

@interface CustomCell : UITableViewCell { 

    UIView *customBackgroundView; 

} 

// m-file 

customBackgroundView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 10, 10)]; 


結果:それは動作しません。 customBackgroundViewはまだnilです。私の結論は、私は狂っているか、Xコードが壊れているということです。

+0

haha​​ ...あなたのプロジェクトをきれいにしてから再起動してください... XCodeは時々動作します – tipycalFlow

+0

@tipycalFlowは何度もクリーニングされ再開されています... :) –

+0

NSLogは直接[[UIView alloc] initWithFrame:CGRectMake 、10、10)]それが無かったかどうかを確認してください。それがnilでない場合は、customBackgroundViewをNSStringに変更し、customBackgroundView = @ "My string"を使用してみてください。 – jptsetung

関連する問題