2014-08-28 70 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