Ошибка поиска каталога с ODQuery - PullRequest
1 голос
/ 27 февраля 2010

Я пытаюсь найти базу данных LDAP, используя метод ODQuery. У меня установлен следующий код:

- (void)awakeFromNib
{
[self startSearch:@"john"];
}

- (void)startSearch:(NSString *)searchString
{
nodeName = @"http://sububria.org.au";
session = [ODSession defaultSession];
searchNode = [[ODNode alloc] init];
searchNode = [ODNode nodeWithSession:session name:nodeName error:NULL]; 

query = [[ODQuery alloc] initWithNode:searchNode
                       forRecordTypes:kODRecordTypePeople
                            attribute:kODAttributeTypeAllAttributes
                            matchType:kODMatchInsensitiveContains
                          queryValues:searchString
                     returnAttributes:kODAttributeTypeAllAttributes
                       maximumResults:0
                                error:NULL];

[query setDelegate:self];
[query scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
}

- (void)query:(ODQuery *)inSearch foundResults:(NSArray *)inResults error:(NSError *)inError
{ 
NSLog (@"Search ran");
NSLog (@"%@", inResults);
}

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

Появляется ошибка консоли, но самые последние элементы в стеке потоков:

CFRetain
_ODQueryInitWIthNode
-[ODQuery initWithNode:forRecordTypes:attribute:matchType:queryValues:returnAttributes:maximumResults:error:]
-[MyAppDelegate startSearch:]
-[MyAppDelegate applicationDidFinishLaunching:]

Буду признателен за любую помощь. Рики.

1 Ответ

1 голос
/ 27 февраля 2010

Все, что вы сделали, это создали запрос; вы на самом деле не начали поиск.

Для синхронного поиска, запросить запрос всех результатов сразу . Если вы передадите NO (то есть верните все результаты), это может занять некоторое время.

Чтобы выполнять асинхронный поиск и получать информацию, когда у вас есть больше результатов, будет делегатом запроса , а затем запланирует запрос в цикле выполнения .

Редактировать: Кроме того, я сомневаюсь, что «http://server.org” является допустимым именем узла. Наверное, поэтому node это nil.

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