setSearchDisplayController считается private-API? - PullRequest
1 голос
/ 17 июня 2010

Я недавно отправил приложение на рассмотрение, но получил отказ из-за использования частного API.Я все еще немного новичок в разработке для iPhone, поэтому мне было интересно, кто-нибудь может помочь мне понять, как эта часть была отклонена:

UISearchBar *searchBar = [[[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 0)] autorelease];
searchBar.showsCancelButton = NO;
searchBar.placeholder = @"Search Exhibitors";
[searchBar sizeToFit];

[self.tableView setTableHeaderView:searchBar];

UISearchDisplayController *searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];  

[self performSelector:@selector(setSearchDisplayController:) withObject:searchDisplayController];

[searchDisplayController setDelegate:self];  
[searchDisplayController setSearchResultsDataSource:self];  
[searchDisplayController setSearchResultsDelegate:self];
[searchDisplayController release];

Часть, которую они упомянули, была "setSearchDisplayController".Я основал поиск UITableView на примере, приведенном здесь .Так может кто-нибудь объяснить, почему это считается частным API?

Ответы [ 3 ]

1 голос
/ 17 июня 2010

Упоминается ли -setSearchDisplayController: где-либо в документации (я так не думаю)? Если это не так, то это не публичный API.

Тот факт, что вы должны использовать -performSelector:withObject: и не можете вызвать его напрямую, - это еще одна распродажа. -setSearchDisplayController явно не входит ни в один заголовочный файл.

0 голосов
/ 28 апреля 2014

Из документа Apple UIViewController:

@ свойство (неатомное, только для чтения, сохранить) UISearchDisplayController * searchDisplayController
Это свойство отражает значение выхода searchDisplayController, установленное в Интерфейсном Разработчике. Если вы создаете свой контроллер дисплея поиска программно, это свойство устанавливается автоматически контроллером отображения поиска, когда оно инициализируется.

0 голосов
/ 17 августа 2013
[self performSelector:@selector(setSearchDisplayController:) withObject:searchDisplayController];

Это частный вызов API, который может вызвать отклонение приложения Apple, я знаю, потому что это произошло с приложением, над которым я работаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...