У меня есть эта проблема, у меня есть класс с именем «GraphGenerator», который другой класс может вызвать передачу представления, чтобы получить это представление, заполненное графом. Этот класс GraphGenerator одноэлементноIphone sdk Общий экземпляр с переменной класса
+ (GraphGenerator *)sharedInstance
{
static GraphGenerator *sharedInstance;
static dispatch_once_t once;
dispatch_once(&once, ^{
//allochiamo la sharedInstance
sharedInstance = [[self alloc] init];
});
return sharedInstance;
}
это использование класса некоторые синтезируются свойство как _graphType и _graphData время делает график.
-(void)generateGraphInView:(CPTGraphHostingView*)hostingView ofType:(NSUInteger)type withData:(NSArray*)data andStyle:(NSUInteger)style{
_graphData=[NSMutableArray arrayWithArray:data];
_graphStyle=style;
_graphType=type;
Проблема заключается в том, что, когда я начинаю множественный вызов в этом одноэлементных в ViewController, то GraphGenerator начать делать график, но не один момент времени. Кажется, что класс делать все граф совмещены, изменяя значение свойства синтезированного и делает проблему .. пример, я делаю это два вызова в методе
[[GraphGenerator sharedInstance]generateGraphInView:graphHost01 ofType:DAILY withData:[_dataDictionary valueForKey:@"day share"] andStyle:BARCHART];
[[GraphGenerator sharedInstance]generateGraphInView:graphHost02 ofType:WEEKLY withData:[_dataDictionary valueForKey:@"week share"] andStyle:BARCHART];
_graphType выставиться в ЕЖЕДНЕВНО Сразу после этого она выставиться, как ЕЖЕНЕДЕЛЬНО, но устанавливается слишком быстро, что первый вызов по-прежнему генерирует свой график, который на данный момент генерируется как еженедельно, а не ежедневно.
Так что я могу реализовать? Я думал о мьютексе или что-то в этом роде, но я не знаю, как это реализовать. Спасибо
Привет, Зачем вам этот класс, чтобы быть одиночным? –
Потому что я не знаю, возможно ли реализовать для него неинтернет-класс. Я должен назвать этот класс из всех контроллеров представления в своем приложении, и я думал, что лучший способ - сделать singleton – ReTanica
, как я могу реализовать не- одноэлементное решение? если я вызову генератор графа, используя GraphGenerator * graphGen; [graphGen generateGraphInView ......]; Я не получаю никакого графика. – ReTanica