2017-08-28 2 views
0

Ich will den Quellcode von .m-Datei bekommen, damit ich auf diese Weise verwenden:Kann ich den Quellcode aus der .m-Datei abrufen?

NSString *path = [[NSBundle mainBundle] pathForResource:@"ViewController" ofType:@".m"]; 
NSString *content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; 
NSLog(@"%@", content); 

jedoch die Konsole print „null“.

Ich frage mich, ob wir irgendwie den Inhalt der .m-Datei verwenden können, selbst wenn Sie private Methode verwenden.

+1

Sie können es nicht erhalten, da der gesamte Quellcode in Binärdatei KOMPILIERT ist. Ihre Alternative besteht darin, eine Kopie des Quellcodes zu erstellen, sie in eine andere Erweiterung wie .txt umzubenennen und sie zu Ihrem Bundle hinzuzufügen, und Sie können sie dann mit Ihrem obigen Code verwenden. – GeneCode

Antwort

0

Wenn Sie die eigentliche Quelldatei in das Paket Ihrer Anwendung kopieren und diese einbinden, dann funktioniert das sicher, obwohl ich nicht weiß, warum Sie das tun möchten.

Wenn Sie sich fragen, ob Sie eine Binärdatei wieder in Objective-C-Code dekompilieren können, dann können Sie das nicht tun - zumindest nicht einfach. Wenn Sie die Assemblersprache gut genug beherrschen, können Sie natürlich eine Disassemblierung des Codes lesen, herausfinden, was das ursprüngliche Objective-C getan hat, und dieses Wissen verwenden, um es neu zu erstellen.

Verwandte Themen