Я пытаюсь выполнить поиск в базе данных LDAP с использованием метода ODQuery. Я следующий код настройки:Поиск ошибок в каталоге с помощью 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:]
Буду признателен за любую помощь. Рикки.
Не передавайте 'nil' параметру' error: '. Во-первых, тип этого параметра не является указателем на объект (например, 'NSError *'); это указатель на указатель на объект ('NSError **'), поэтому правильная константа нулевого указателя равна 'NULL'. 'nil' для указателей на объекты,' Nil' для классов; 'NULL' для всего остального. Что еще более важно, никогда не подавляйте ошибки, особенно когда что-то не работает. Метод может пытаться рассказать вам, что вы делаете неправильно, и это может быть причиной сбоя (если он пытается назначить указатель объекта ошибки нулевому указателю, который вы ему дали). –
Кроме того, вы не должны использовать 'stringWithFormat:' ничем, кроме строки формата. Литеральная строка - это строка; вы можете просто назначить его непосредственно переменной 'NSString *'. –
Вам не нужно выделять и инициализировать узел только для замены его другим узлом сразу после этого. Делать это бессмысленно, и это делается без освобождения первого узла. –