Der Versuch, druckbare Daten für die OS X-Anwendung zu erhalten. Es scheint sich um das Erstellen einer Sitzung, dann um ein Seitenformat, um das Überprüfen des Formats usw. zu handeln. Der Code wird kompiliert, erhält aber den Status -50 von PMCreateSession. Richte ich printSession nicht korrekt aus? Normalerweise müssen Sie nicht so viel mit UnsafeMutablePointers beschäftigen.PMCreateSession erstellt keine Drucksitzung
Danke! unsachgemäß
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)
Funktioniert besser beim Zuweisen der Zeiger. Beispiel: printSession = UnsafeMutablePointer .alloc (1) Wenn printSession, pmPageFormat und changed so deklariert und zugewiesen werden, wird tatsächlich ein sinnvolles rect (0, 0, 734, 576) erstellt. Aber stürzt immer noch auf den PMRelease-Anruf und unsicher warum. –
JKaz
Für jetzt ersetzt die PMRelease (printSession) (und andere PMRelease) mit printSession.destroy() und printSession.dealloc (1). Keine offensichtlichen schädlichen Auswirkungen, aber unsicher, ob das richtig ist oder warum PMRelease abstürzt. – JKaz