2010-02-27 18 views

risposta

2

Forse il codice dei progetti opensource potrebbe adattarsi a voi? Recentemente su FLOSS-Weekly è stata una discussione su Stellarium.

Disclaimer: Non ho guardato la fonte di Stellarium quindi non ho idea se sia utile e purtroppo è scritto in C/C++.

2

la sua non è in Objective C, ma la libreria incluso nel pacchetto pyephem è abbastanza buona. I file sorgente C sono stati presi dal vecchio programma X Window Xephem con la colla aggiunta per rendere le funzioni disponibili all'interno di Python. Finché non hai bisogno di un'accuratezza molto alta, queste routine probabilmente funzioneranno per te.

http://rhodesmill.org/pyephem/

12

vi consiglio PJ Naughter di AA+ library. È basato sul libro Astronomical Algorithms di Meeus. La libreria è abbastanza completa e scritta in C++ (facilmente chiamata da Objective-C). La mia app iOS Lúan utilizza questa libreria.

+0

Ho scaricato la libreria AA +, ma per favore fatemi sapere come aggiungere file C++ al progetto XCode iOS? Ho provato ma errori nella parola chiave ** class **! – AVEbrahimi

+3

Quando si integra AA +, rimuovere i test in quanto contengono una funzione principale che entrerà in conflitto con i principali progetti. rinominare i file obj-c che devono fare riferimento al codice C++ per terminare in .mm anziché in .m. Così facendo metterà il compilatore in modalità obiettivo-C++ per quel file. –

+0

Non riesci a trovare il sole e la luna sorgere e impostare è giusto? –

1

In cima alla risposta di Andrew Hammond, utilizzo Xcode per scaricare l'AA. Quindi rimuovo tutti i file di test (AATest.cpp AATest.sin AATest.vcproj) e con un avviso di Xcode di "Precisione intero perdita di conversione implicita 'lunga' a 'int'" nell'ultima riga su nYear/100

CAAEasterDetails CAAEaster::Calculate(long nYear, bool GregorianCalendar) 
{ 
    CAAEasterDetails details; 

    if (GregorianCalendar) 
    {      
    int a = nYear % 19; 
    int b = nYear/100; 

Il programma viene compilato correttamente. Compilare solo se il programma è oggettivo c ma non se è basato su Swift. Hai un problema con la macro pre-processore AAPLUS_EXT_CLASS.

0

Per coloro che sono ancora interessati al 2016, ho creato un wrapper Objective-C (++) e Swift attorno alla libreria AA + di PJ Naughter. Essa si basa sul libro Astronomical Algorithms di Jean Meeus ed è open-source su GitHub:

https://github.com/onekiloparsec/SwiftAA