Попытка получить возможность печати для OS X. Кажется, требуется создание сеанса, затем формат страницы, проверка формата и т. Д. Кодекс компилируется, но получает статус -50 от PMCreateSession. Я объявляю printSession ненадлежащим образом? Как правило, не нужно иметь дело с UnsafeMutablePointers.PMCreateSession не создает сеанс печати
Спасибо!
let printSession: UnsafeMutablePointer<PMPrintSession> = nil
let pmPageFormat: UnsafeMutablePointer<PMPageFormat> = nil
var status = PMCreateSession(printSession)
status = PMCreatePageFormat(pmPageFormat)
status = PMSessionDefaultPageFormat(printSession.memory, pmPageFormat.memory)
let changed: UnsafeMutablePointer<DarwinBoolean> = nil
status = PMSessionValidatePageFormat(printSession.memory, pmPageFormat.memory, changed)
changed.destroy()
var pRect = PMRect()
status = PMGetAdjustedPageRect(pmPageFormat.memory, &pRect)
Swift.print("pRect \(pRect)")
status = PMRelease(pmPageFormat)
status = PMRelease(printSession)
Работает лучше при назначении указателей. Например, пусть printSession = UnsafeMutablePointer .alloc (1) Когда printSession, pmPageFormat и изменено объявляются и распределяются таким образом, фактически получают разумный rect (0, 0, 734, 576). Но все равно сбой в вызове PMRelease и неопределенность. –
JKaz
На данный момент заменен PMRelease (printSession) (и другой PMRelease) с помощью printSession.destroy() и printSession.dealloc (1). Нет очевидных вредных эффектов, но неясно, правильно ли это сделать или почему PMRelease падает. – JKaz