При сохранении объекта в пользовательских значениях по умолчанию все объекты, рекурсивно, полностью вниз, должны быть объектами списка свойств. Приспосабливание NSCoding не означает, что что-либо здесь - NSUserDefaults
автоматически не закодирует их в NSData
, необходимо сделать это сами. Если Ваш "список объекта, который реализует NSCoding
", означает объекты, которые не являются объектами списка свойств, то необходимо будет сделать что-то с ними прежде, чем сохранить к пользовательским значениям по умолчанию.
к вашему сведению классы списка свойств NSDictionary
, NSArray
, NSString
, NSDate
, NSData
, и NSNumber
. Можно записать изменяемые подклассы (как NSMutableDictionary
) к пользовательским настройкам, но объекты, которые Вы считываете, всегда будут неизменны.
Blorgbeard, вы должны создать, инициализировать и открыть отдельный Экземпляр TAdoconnection для каждого из ваших потоков.
ADO - это технология на основе COM. Он использует многопоточные объекты, не забудьте вызвать CoInitialize (nil).
procedure TMyThread.Execute;
begin
CoInitialize(nil);
try
try
// create a connection here
except
end;
finally
CoUnInitialize;
end;
end;
Нет, это не так. ADO - это технология на основе COM. Он использует многопоточные объекты, поэтому вы не можете использовать соединения ADO через границы потоков. Каждому потоку требуется собственное соединение.