2011-11-07 5 views
0

UIViewのサブクラスを作成し、imgNameという名前のNSStringメンバーを持っています。 スーパービューに追加されたビューはすべてMyCustomViewです。私は本当にそのメンバーにアクセスしたいiOSビューのサブビューでカスタムクラスメンバーが認識されない

NSArray *arr = [view subviews]; 

for (int x = 0; x < [arr count]; x++) 
{ 
    MyCustomView *view = [arr objectAtIndex:x]; 
    NSString *imgName = view.imgName; <-- Unrecognized selector 

} 

私はこれを行います。私がサブビューのイメージ名の別の実行リストを保持していた場合は、(zIndexesのようなビュー階層が必要なので)ビュー階層内の位置を維持しなければならないので、問題があります。

[view subviews]から文字列を取得するにはどうすればよいですか?

+0

「MyCustomView」のクラス定義を投稿できますか?具体的には、そのメンバーの宣言方法はありますか? –

答えて

3

サブビューのタイプが正しいことを再度確認する必要があります。あなたはこのようなもので、そのチェックを実行することができます。

for (int x = 0; x < [arr count]; ++x) 
{ 
    UIView *subView = [arr objectAtIndex:x]; 
    if ([subView class] == [MyCustomView class]) 
    { 
     //Perform actions on the view as needed 
    } 
} 

オッズは、あなたのMyCustomViewタイプではない、それは適切ではないので、それは、そのメンバーをキャストしてアクセスするようにすることはできませんしようとしたときサブビューがありますタイプ。

編集: 追加したすべてのサブビューはMyCustomViewです。私は個人的には、iOS構造体がすでにサブビューを埋め込まれていないと信じていません。UIView

+0

これは私が必要としたチェックだった。実際には、iOSがデフォルトのUIViewをどこかに追加するように見えます。 – spentak

+0

助けになるのはうれしい! –

関連する問題