Ein Fehler zeigt an, dass ein Array leer ist, obwohl es nicht so ist

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ich kritisiere ungerne Code von anderen, aber in dem Code, den du hier gepostet hast, ist wirklich kaum zu erkennen, was du eigentlich machen willst. Und mich wundert, dass da überhaupt etwas funktioniert. Wirf' doch mal das ganze unnütze Zeugs raus (z.B. das Loggen in die Datei, das ist ja fast die Hälfte des Codes) oder pack' es in eine eigene Methode, dann wird das alles übersichtlicher. Und man muss nicht jedes Mal den Pfad zusammenbauen, wenn man weiß, dass der immer gleich ist.

    Wenn ich es richtig verstehe, möchtest du eine Anzahl Beschleunigungsdaten sammeln und anschließend die Daten und die FFT davon plotten. Dann würde ich im Completion Handler:
    1. Die reinkommenden Daten in einem Array merken
    2. Hochzählen, wie viele Daten schon da sind
    3. Falls die gegebene Zahl erreicht ist: Bewegungsdatensammlung stoppen (Tipp: Wenn es eine "start..."-Methode gibt, gibt es bestimmt auch eine "stop..."-Methode) und die Daten aus dem Array plotten (in einer eigenen Methode).
    Multigrad - 360°-Produktfotografie für den Mac
  • Michael schrieb:

    Ich weiß immer noch nicht, was du willst. Du musst das schon so erklären, dass man das ohne Kenntnis deines Projekts versteht.

    In der Zeile (57):

    Quellcode

    1. [[weakSelf.graphViews objectAtIndex:kDeviceMotionGraphTypeFftwX] addX:fft_result[i][0] y:4 z:4];


    Ich möchte fft_result[0] zeichne aber nur einmal. Mein code zeichnet es wieder und wieder ohne aufzuhören.
    Ich hoffe, dass ich es erklären könnte. :|
  • mattik schrieb:

    Ich kritisiere ungerne Code von anderen, aber...


    Danke für dein Rat. Du hast recht. Ich habe schon mein Code ( in der Frage) geändert.
    Ich versuche womit du mir gesagt hast. Es gibt ja ein Stop Methode und es ist wie folgendes:

    Quellcode

    1. ​{
    2. CMMotionManager *mManager = [(AppDelegate *)[[UIApplication sharedApplication] delegate] sharedManager];
    3. if ([mManager isDeviceMotionActive] == YES) {
    4. [mManager stopDeviceMotionUpdates];
    5. }
    6. }
  • gritsch schrieb:

    in deinem code oben hast du zwei for-schleifen. diese laufen jeweils von 0 bis 63. in denen wird aber nichts gezeichnet!?


    Ihr habt recht. Ich kann es wirklich nicht gut erklären. Aber ich versuche es noch mal.
    In der Zeile 57. wird es doch ddid fft_result[0] gezeichnet ( in der graphview) . Aber das Problem war das es nicht aufhört zu zeichnen. ( unending loop) :S
  • josef907 schrieb:

    gritsch schrieb:

    in deinem code oben hast du zwei for-schleifen. diese laufen jeweils von 0 bis 63. in denen wird aber nichts gezeichnet!?


    Ihr habt recht. Ich kann es wirklich nicht gut erklären. Aber ich versuche es noch mal.
    In der Zeile 57. wird es doch ddid fft_result[0] gezeichnet ( in der graphview) . Aber das Problem war das es nicht aufhört zu zeichnen. ( unending loop) :S


    ich sehe keine zeile 57 - du könntest dir wirklich etwas mehr mühe mit den fragen geben!
  • gritsch schrieb:

    josef907 schrieb:

    gritsch schrieb:

    in deinem code oben hast du zwei for-schleifen. diese laufen jeweils von 0 bis 63. in denen wird aber nichts gezeichnet!?


    Ihr habt recht. Ich kann es wirklich nicht gut erklären. Aber ich versuche es noch mal.
    In der Zeile 57. wird es doch ddid fft_result[0] gezeichnet ( in der graphview) . Aber das Problem war das es nicht aufhört zu zeichnen. ( unending loop) :S


    ich sehe keine zeile 57 - du könntest dir wirklich etwas mehr mühe mit den fragen geben!

    Sorry, Zeile 51 :

    Quellcode

    1. [[weakSelf.graphViews objectAtIndex:kDeviceMotionGraphTypeFftwX] addX:fft_result[i][0] y:4 z:4];
  • Ich sach ma ganz salopp: Deine Projektidee übersteigt Deinen Wissensstand um ein Vielfaches.

    Statt Dich mit irgendwelchen riesigen Frameworks herumzuschlagen solltest Du lieber mal kleine Brötchen backen.
    Lade, bau und starte Dir folgende Samples von Apple. Und dann versuche nachzuvollziehen, was sie tun.
    (Nimm dafür gern den Debugger zu Hilfe.)
    developer.apple.com/library/io…h/Introduction/Intro.html
    developer.apple.com/library/io…s/Introduction/Intro.html

    So tust Du jedenfalls weder Dir noch uns einen Gefallen.
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Kay schrieb:

    Ich würde als erstes den Code nochmal auseinandernehmen und in mehrere Methoden auslagern. Kann irgendein Dritter nachvollziehen, was in dieser Methode alles gemacht wird? Ich jedenfalls nicht.

    Ich glaube nicht einmal, dass es einen Zweiten oder einen Ersten gibt, der das versteht. Für mich sieht es so aus, als hätte der TO seinen Code mehr oder weniger zufällig auf Basis von diesem und anderen zusammengeschustert.

    Die Leute bei Stack Overflow sehen das wohl ähnlich, dass da einige Grundlagen fehlen.
    Multigrad - 360°-Produktfotografie für den Mac
  • Sorry, wenn ich jetzt etwas vom Thema abkomme, aber ich muss meinen Frust / mein Unverständnis einfach einmal loswerden:

    Die letzten Minuten habe ich ehrlich versucht, das Problem zu verstehen und dem Thread zu folgen: Es ist echt nicht machbar. Warum hacken Leute stundenlang Code, aber wenn sie nicht weiterkommen und um Hilfe bitten wollen, haben sie keine paar Minuten, einen ordentlichen Beitrag zu schreiben? Ist es denn so schwer, ein Problem so zu erläutern, dass Außenstehende auch nur eine Chance haben, es zu verstehen? Kann man Code nicht sinnvoll kürzen? Und wenn ein Posting dann noch einer elementaren Rechtschreibung mit Satzzeichen und Groß- / Kleinschreibung folgen würde, könnte man einem Problem vielleicht folgen ... und eventuell sogar helfen.

    Ich persönlich habe bei derart "hingerotzten" Beiträgen inzwischen keine Lust mehr: Wer will, dass ich meine Zeit mit seinen Problemen verbringe, darf sich gerne etwas mehr Mühe geben.

    Sorry an den OT, dass es ihn jetzt trifft, er ist in guter Gesellschaft und ja, ich bin "Old School".

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • MyMattes schrieb:

    Sorry, wenn ich jetzt etwas vom Thema abkomme, aber ich muss meinen Frust / mein Unverständnis einfach einmal loswerden:

    Die letzten Minuten habe ich ehrlich versucht, das Problem zu verstehen und dem Thread zu folgen: Es ist echt nicht machbar. Warum hacken Leute stundenlang Code, aber wenn sie nicht weiterkommen und um Hilfe bitten wollen, haben sie keine paar Minuten, einen ordentlichen Beitrag zu schreiben? Ist es denn so schwer, ein Problem so zu erläutern, dass Außenstehende auch nur eine Chance haben, es zu verstehen? Kann man Code nicht sinnvoll kürzen? Und wenn ein Posting dann noch einer elementaren Rechtschreibung mit Satzzeichen und Groß- / Kleinschreibung folgen würde, könnte man einem Problem vielleicht folgen ... und eventuell sogar helfen.

    Ich persönlich habe bei derart "hingerotzten" Beiträgen inzwischen keine Lust mehr: Wer will, dass ich meine Zeit mit seinen Problemen verbringe, darf sich gerne etwas mehr Mühe geben.

    Sorry an den OT, dass es ihn jetzt trifft, er ist in guter Gesellschaft und ja, ich bin "Old School".

    Mattes


    Genau das ist aber sein Problem, Ich vermute auch, dass er sich den Code irgendwo zusammenkopiert hat und nun aber auch nicht genau beschreiben kann, was eigentlich das Problem ist. Wenn ich von irgendwas keine Ahnung habe, kann ich es auch nicht beschreiben.

    Wenn ich mir aus dem Netz eine Anleitung für den Bau eines Motors ziehe und dann von verschiedenen Seiten die Bauteile ordere und dann im Forum frage, warum "oben rechts das Teil mit dem kleinen Nippel dran" nicht funktioniert ...

    Na dann ...
    Ich bin gegen Signaturen!!!