2016-03-26 5 views
0

オブジェクトをクラスにキャストするにはどうすればよいですか?オブジェクトを独自のクラスにキャストする方法は?

ので、代わりにこれを書いている:機能は、カスタムUITableViewCellを返し

return object as! object.class // which does not work 
+1

関数の戻り値の型は何ですか? – dasblinkenlight

+0

この関数はカスタムUITableViewCellを返します。それは関数tableView(cellForRowAtIndexPath ...)です。実際には、これは不正なコードデザインのような臭いです。つまり、テーブルビューは配列を使用し、それをカスタムUITableViewCellクラスにキャストしなければなりません。 – Manuel

+1

すべてのオブジェクトが 'UITableViewCell'サブクラスである場合、実際の型にかかわらず' AnyObject'を 'UITableViewCell'にキャストできます。 – dasblinkenlight

答えて

2

switch object { 
    case is ClassA: 
     return object as! ClassA 

    case is ClassB: 
     return object as! ClassB 
    } 

ように私は短い形式を探しています。 [...]テーブルビューでは、実際の型に関係なく、UITableViewCellAnyObjectをキャストすることができ、配列<AnyObject>を使用し、すべてのオブジェクトがUITableViewCellサブクラスがカスタムされているので、カスタムにUITableViewCellクラス

それをキャストする必要があります。 UITableUITableViewCellベースタイプを超えるタイプについて知る必要がないので、これで十分です。

関連する問題