2016-09-19 2 views
0

Ich versuche, ein Sicherheits-Scoped-Lesezeichen zu verwalten, muss aber nur einfaches C verwenden, das Objective-C in einer einfachen C-Datei verwendet.Sicheres Scoped-Lesezeichen in Plain C

Ist es überhaupt machbar oder sollte ich einfach aufgeben?

Irgendwelche Ratschläge? Kann ich die Obj-C-Funktion innerhalb der C-Funktion aufrufen und die Datei als .c speichern?

Vielen Dank im Voraus allen, Nikolas

Antwort

0

kann ich mir nicht vorstellen, warum Sie nur C verwenden wollen würde, wenn Sie Unterstützung für Objective-C zur Verfügung. Aber wenn Sie es wirklich wollen, dann ist ein gültiger Ansatz, die CoreFoundation Unterstützung für NSURL und Speicherverwaltung zu verwenden.

Alle URL CoreFoundation Funktionen können here gefunden werden.

In Bezug auf die Speicherverwaltung könnten Sie die CFRetain/CFRelease Funktionen interessieren, die sehr gut here beschrieben sind.

Grundsätzlich, wenn C alles, was Sie wollen, dann ist CoreFoundation ein guter Anfang, da es Unterstützung für viele der Cocoa/CocoaTouch Typen hat.

+0

Ich verwende eine Entwicklungsumgebung von Drittanbietern für die Entwicklung, die Ocbjective-C nicht unterstützt. Also versuche ich den langen Weg für solche Dinge. Vielen Dank für die Info, ich werde mich darum kümmern. Nik –

+0

@ NikolasKon dann 'CoreFoundation' ist der Rahmen, den Sie brauchen. Wenn Ihre Entwicklungsumgebung es erlaubt, es zu verlinken, natürlich :) – Cristik

+0

, wie ich verstehe, sollte ich jetzt die 'CoreFoundation's 'CFURLCreateBookmarkData' ** statt ** von' bookmarkDataWithOptions' verwenden, die auf die [Security-Scoped Lesezeichen und verwiesen wird Persistenter Ressourcenzugriff] (https://developer.apple.com/library/content/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16). Ich habe es noch nicht versucht, aber es ist jetzt viel klarer, du hast mir wirklich sehr geholfen. Vielen Dank! –

0

Es ist machbar, aber es ist im Grunde die gleiche wie die Arbeit der Compiler sonst für Sie tun würden, zu tun. Und Sie können ARC nicht verwenden.

Ich habe die beste Dokumentation in den Header-Dateien im Include-Ordner gefunden.

z. aufblicken die Varianten von objc_msgSend in #include <objc/message.h