Dashboard widget plugin und objective-c arrays

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

  • Dashboard widget plugin und objective-c arrays

    Hi! Ich bastle grade mal wieder an einem Dashboard Widget und hab mir zu leichteren Verwaltung der Widget Daten ein Cocoa Plugin gebaut. Hierzu muss ich ein Array zwischen Javascript und Objectiv-C hin und her schieben. Von Javascript zu Objective-C funzt das richtig gut, wenn man die Bugs mit den WebScriptObjects berücksichtigt. Ich habe aber ein Problem das Array von Objective-C wieder in Javascript zu übergeben. Ich hab mich jetzt schon totgesucht! Kennt jemand vielleicht ne Lösung?

    Javascript:

    Quellcode

    1. function readsavedwebcams() {
    2. //Reading webcams
    3. if (ManyCams)
    4. {
    5. webcamArray = [];
    6. webcamArray = ManyCams.returnwebcams;
    7. }
    8. }
    Objective-C:

    Quellcode

    1. - (NSMutableArray *) returnwebcams
    2. {
    3. NSLog(@"returnwebcamsmethod is called!!!!");
    4. return webCamMutArray;
    5. }
    ManyCams ist quasi das Zugriffsobjekt fürs Plugin. Ich krieg noch nicht mal hin, daß die Methode aufgerufen wird. Nix Logeintrag in der Konsole. Danke!
  • Ich bin da auch dran gescheitert. Meine Lösung -- traurig aber wahr -- sieht so aus, das ganze mit einem String, der in dem Array nicht vorkommen kann miteinander zu verbinden und dann in Javascript nach genau dem String wieder auseinanderzunehmen.

    Nicht schön aber funktioniert.
    if (!exit(-1)) fprintf(stderr, "exit call failed. Program will continue\n");
  • Ich hab das ganze jetzt mal umgeschrieben in einen String. Trotzdem funzt es nicht.
    Javascript

    Quellcode

    1. function readsavedwebcams() {
    2. //Reading webcams
    3. if (ManyCams)
    4. {
    5. //webcamArray = [];
    6. var meinstring = ManyCams.returnwebcamstring;
    7. }
    8. }
    Objective-C

    Quellcode

    1. - (NSString *) returnwebcamstring
    2. {
    3. NSLog(@"returnwebcamsmethod is called!!!!");
    4. return @"Solche Nasen he!";
    5. }
    Kannste mir vielleicht nen Code Hint geben? :rolleyes: Danke!!!
  • Original von kay

    Quellcode

    1. var meinstring = ManyCams.returnwebcamstring;

    Klammern für die Methode? ;)

    Quellcode

    1. var meinstring = ManyCams.returnwebcamstring();

    Hätte aber theoretisch ne Meldung in der Konsole sein sollen.
    if (!exit(-1)) fprintf(stderr, "exit call failed. Program will continue\n");
  • Original von kay
    Hab ich gemacht und krieg dann immer eine Fehlermeldung:

    Quellcode

    1. Value undefined (result of expression ManyCams.returnwebcamstring) is not object
    Ich code mit Dashcode. Muss ich noch was am Webscript Objekt ManyCams registrieren?

    Hast Du die returnwebcamstring sowohl in der isSelectorExcludedFromWebScript als auch in der webScriptNameForSelector?
    if (!exit(-1)) fprintf(stderr, "exit call failed. Program will continue\n");
  • Natürlich nicht! Jetzt gehts!!!! Danke!!!!!!!!

    Quellcode

    1. + (BOOL)isSelectorExcludedFromWebScript:(SEL)aSelector {
    2. // ensure this method is available to JavaScript
    3. if (aSelector == @selector(returnwebcamstring:)) {
    4. return aSelector != @selector(returnwebcamstring:);
    5. }
    6. else if (aSelector == @selector(savewebcamstoprefs:)) {
    7. return aSelector != @selector(savewebcamstoprefs:);
    8. }
    9. return nil;
    10. }
  • Original von kay
    Das geht auch mit Arrays!!!!

    Oh, dann war das meine Lösung für ein anderes Problem... war mir doch so. :)

    Richtig, das war für Dictionaries/Hashtables, die gehen nicht "so" rüber, nur Zahlen, Strings und Arrays.
    if (!exit(-1)) fprintf(stderr, "exit call failed. Program will continue\n");