2013-08-23 3 views
6

Ich versuche, einen Java-Code zu Objective-C zu konvertieren. Die folgende Klasse ist die Erweiterung TestCodeRequest. Sie fragen sich, wie Sie dies in ein objektives C-Äquivalent umwandeln können. Ich finde es ein wenig verwirrend, weil Java statisch typisiert ist und Konfiguration über Konvention. Während Objective-C dynamisch typisiert ist und Konvention über Konfiguration. Ich habe einen Beispielcode unten. Jeder kleine Hinweis sollte wirklich toll sein.Konvertieren von Java in Ziel C

package com.TestCode.api; 

import java.io.IOException; 

import oauth.signpost.exception.OAuthCommunicationException; 
import oauth.signpost.exception.OAuthExpectationFailedException; 
import oauth.signpost.exception.OAuthMessageSignerException; 

import org.json.JSONObject; 

public class Categories extends TestCodeRequest { 

    public Categories(String apiKey, String apiSecret) { 
      super(apiKey, apiSecret, "categories"); 
    } 

    public Categories field(Object... fields) { 
     super.field(fields); 
     return this; 
    } 

    public JSONObject getCategories() throws OAuthMessageSignerException, OAuthExpectationFailedException, OAuthCommunicationException, IOException { 
     return this.get(); 
    } 

    public Categories categoriesField(Object... fields) { 
     return this.field(fields); 
    } 

} 

Antwort

11

Es gibt einige gute Java zu Objective C Übersetzer. Für den Code , dass einfach, sollten alle von ihnen funktionieren. Wenn Übersetzer in der Regel viel Mühe haben, übersetzen sie Calls aufgrund ihrer divergierenden Philosophien in Runtime-Bibliotheken (insbesondere im Bereich Look-and-Feel und Benutzerinteraktion). Um hier einen guten Job zu machen, müssen sie von der Syntax zurück zur Semantik gehen, und dies ist für Software äußerst schwierig.

Ihr Ausdruck "Java ist statisch typisiert und Konfiguration über Konvention. Während Objective-C ist dynamisch typisiert und Konvention über Konfiguration" kann nicht darauf verweisen. Speziell GUI-Entwicklung. Dieser Aspekt der Sprachen ist ihnen nicht eigen, sondern gehört zu den Bibliotheken, die Entwickler normalerweise verwenden, in vielen Fällen abhängig von bestimmten Betriebssystemen. Wir sprechen daher wahrscheinlich nicht so sehr von der Konvertierung von Java zu Objective C als von der Umwandlung von einem Swing-Look-and-Feel und einem Interaktionsmodus in einen iOS-Modus.

Alles in allem würde ich Ihnen empfehlen, automatische Konvertierungstools als Lernwerkzeuge zu verwenden. Sie werden sehen, dass die generierten Codeelemente (wenn sie komplexer werden und/oder Benutzeroberflächen enthalten) auch dann funktionieren, wenn sie funktionieren, nicht für die Wartung oder Weiterentwicklung geeignet sind und neu codiert werden müssen, wenn sie nicht neu gestaltet werden. Aber auch hier sind sie als Lernmittel sehr nützlich.

  • Google J2ObjC
  • java2objc
  • JCGO Dieser C. wandelt Wenn der Zweck etwas zum Laufen zu haben, könnte dies gut genug sein. Nicht, wenn es darum geht, Ziel C in seiner ganzen Pracht zu lernen.
+0

Ausgezeichnete Antwort auf eine sehr vage Frage. (Voted) –

+0

Ziel C hat Pracht? – noelicus