如何在运行时创建一个对象并更改它的类型

时间:2015-01-24 18:41:55

标签: objective-c object object-type

我有一种方法可以通过3种不同的方法调用。

每种方法都通过标志指示它希望从方法接收哪种数据。在这个例子中,我们调用标志'objectType'。

'calledMethod'需要查看objectType并根据它创建正确的对象。

'calledMethod'然后需要返回它收到的相同objectType,以便调用方法获得正确的objectType。

我在下面提供了示例代码,我知道这是不正确的,但它让您了解我想要实现的目标。请注意,所有3个对象都具有'testInt'objectKey。

例如

-(NSObject *)calledMethod : (int)objectType
{
    NSObject *einStein;

    switch (objectType)
    {
        case 1: // this is an NSUserDefaults object
            einStein = [NSUserDefaults standardUserDefaults];
            break;
        case 2: // this is an PFUser object
            einStein = [PFUser currentUser];
            break;
        case 3: // this is a custom object
            einStein = [TestData personData];
            break;
        default:
            break;
    }

    int *testCnt = [einStein objectForKey@"testInt"];
    testCnt = testCnt++;
    [einStein setObject:testCnt forKey:@"testInt"];
    return einStein;
}

1 个答案:

答案 0 :(得分:0)

我认为Sinisa可能正确地使用了Factory Patterns,但是在我拥有它的时候实现它太复杂了,所以将来会尝试使用