2014-01-08 3 views
3

Я следующее свойство заявил в своем заголовке:IOS условно объявить свойство для UIRefreshControl

@property (nonatomic, strong) UIRefreshControl *refreshControl; 

Я также использую это приложение, которое нуждается в поддержке обратно iOS 5. UIRefreshControl не был добавлен до iOS6, поэтому я хочу условно включить его в зависимости от его доступности. Я знаю метод respondsToSelector для проверки доступности метода, но как это сделать в файле заголовка, где вы объявляете свои свойства? Кроме того, связанные методы, которые использовали UIRefreshControl, должны быть условно закодированы.

Любая помощь или руководство оценены.

Удалось ли приложение в iOS 5, объявив свойство UIRefreshControl?

ответ

3

Поскольку вы будете компилировать с помощью iOS 6 или 7 SDK, вы можете безопасно включить свойство в свой заголовок, без каких-либо негативных последствий для устройств, работающих под управлением iOS 5.

Пока вы завершаете свой код условно, у вас не будет проблем.

// Add pull-to-refresh 
if (NSClassFromString(@"UIRefreshControl")) 
{ 
    self.refreshControl = [[UIRefreshControl alloc] init]; 
    [_refreshControl addTarget:self action:@selector(startPullToRefresh) forControlEvents:UIControlEventValueChanged]; 
    [self.tableView addSubview: _refreshControl]; 
} 
+0

Большое вам спасибо! – codeman

0

Я не проверял это, но вы, вероятно, может просто объявить его как id, как это:

@property (nonatomic, strong) id refreshControl;

Когда вы его экземпляр, это сделать так:

Class refreshClass = NSClassFromString(@"UIRefreshControl"); 
if(refreshClass){ 
    _refreshControl = [[refreshClass alloc]init]; 
} 
Смежные вопросы