$ newtime = date ("H: i: s", strtotime ($ this-> time)); попробуй вот так
Можно преобразовать строку в класс с помощью функции: NSClassFromString
Class classFromString = NSClassFromString(@"MyClass");
В Вашем случае, хотя, Вы были бы более обеспеченным использованием Объектов класса непосредственно.
MyClass * variable = [factory makeObjectOfClass:[MyClass class]];
- (id)makeObjectOfClass:(Class)aClass
{
assert([aClass instancesRespondToSelector:@selector(reset)]);
id newInstance = [aClass createInstance];
[managedObjects addObject:newInstance];
return newInstance;
}
Довольно легко динамично указать класс, на самом деле можно просто сослаться на него, он - имя:
id string = [[NSClassFromString(@"NSString") alloc] initWithString:@"Hello!"];
NSLog( @"%@", string );
Еще одна подсказка, я избегал бы использования номенклатуры 'управляемый объект', так как большинство других программистов Cocoa считает что как NSManagedObject от Базовых Данных. Можно также найти легче использовать глобальный NSNotification (который все способные сбросом объекты подписывают на) вместо того, чтобы управлять набором различных типов объектов, но Вам больше сообщают для принятия того решения, чем я.
Бит ответа, отсутствующего в других ответах, - то, что Вы могли определить a @protocol
содержа Ваш +createInstance
и +reset
методы.
Это кажется на желание чего-то как:
- (id)makeObjectOfClassNamed:(NSString *)className
{
Class klass = NSClassFromString(className);
assert([klass instancesRespondToSelector:@selector(reset)]);
id newInstance = [klass createInstance];
[managedObjects addObject:newInstance];
return newInstance;
}
Это приняло бы названный метод класса +createInstance
. Или Вы могли просто использовать [[klass alloc] init]
.
Назвать его:
MyClass *variable = [factory makeObjectOfClassNamed:@"MyClass"];
В зависимости от того, что Вы пытаетесь сделать, могло бы быть лучше раздать объекты класса, чем строки, например:
MyClass *variable = [factory makeObjectOfClass:[MyClass class]];