2014-08-28 71 views
0

是否有方法在objective-c中投射對象?如何將對象投射到Objective-C中的類中

例如,我有一個對象,並希望將它轉換成一個類:

NSManagedObject *item = [array objectAtIndex:indexPath.row]; 
+0

那有什麼問題? – trojanfoe 2014-08-28 10:32:00

+0

想把這個對象轉換成類 – mowi 2014-08-28 10:33:21

+0

use(className *)那麼簡單 – Mohit 2014-08-28 10:33:57

回答

5

我想你想是這樣的:

if ([[[array objectAtIndex:indexPath.row] isKindOfClass:[NSManagedObject class]]) 
{ 
    NSManagedObject *item = (NSManagedObject *)[array objectAtIndex:indexPath.row]; 
} 

首先請看this link,在Auto Generating Model Files之下,看看作者如何將NSManagedObject更改爲一個強類型的對象。

那麼會留給你的是:

if ([[[array objectAtIndex:indexPath.row] isKindOfClass:[Contact class]]) 
{ 
    Contact *item = (Contact *)[array objectAtIndex:indexPath.row]; 
} 

希望幫助!

+0

此外,您可以使用強類型對象而不是強制轉換。每次訪問它時都會節省您的投射。 – NeverHopeless 2014-08-28 10:35:19

+0

我想把對象轉換成一個類,我把它叫做contact – mowi 2014-08-28 10:38:26

1

是簡單地做

NSManagedObject *item = (NSManagedObject *)[array objectAtIndex:indexPath.row]; 
+0

NSManagedObject是我的班的名字? – mowi 2014-08-28 10:34:32

+0

YES寫上你的班級的名字 – Mohit 2014-08-28 10:38:53

+0

因爲你沒有指定班級,我自動假設你想要轉換成真實的假設的NSManagedObject *。但是,你的班名將會去那裏。 – Popeye 2014-08-28 10:40:24