• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Iphone SDK NSLOG fehler

Tarnhans

Granny Smith
Registriert
18.01.10
Beiträge
16
Hallo ihr Lieben,
wir wollten für unser Radio ein APP produzieren.

Wir haben uns an diese Anleitung gehalten - http://www.myiphonereview.com/?p=771
Doch wir bekommen diesen Fehler angezeigt:

In Mainview.m we have this Error.
Expected expression before '@' token
And 2 warnings
Character constant too long for its type
Format not a string literal and no format arguments

Vielleicht könnt ihr uns ja helfen.

Das ist der Code:


#import "MainView.h"


@implementation MainView

- (IBAction)PushButton:(id)sender {




NSURL *url = [NSURL URLWithString:mad:"http://mp3.live.streams.xxx.de/listen.pls"];

if (![[UIApplication sharedApplication] openURL:url])

NSLog(@'%@%@', @'Failed to open url:', [url description]);

}

@end

Entschuldigung, falsch ich das falsch angehängt habe - ich hocke nun seit 3 Stunden an diesem Fehler und komme einfach nicht weiter! :(
 

Poljpocket

Salvatico di Campascio
Registriert
07.01.07
Beiträge
432
Character constant too long for its type
Format not a string literal and no format arguments

Wenn du wirklich 3 Stunden an diesem Fehler sitzt, sollte dir doch wohl genau das aufgefallen sein. Fehlermeldungen des Compilers mögen manchmal irreführend sein, aber in diesem Fall ist doch alles sonnenklar:

Schon mal daran gedacht, dein

NSLog(@'%@%@', @'Failed to open url:', [url description]);

in

NSLog(@"%@%@", @"Failed to open url:", [url description]);

umzuschreiben? Obwohl ich die DOPPELTEN Anführungszeichen fett gemacht habe, sieht man das schlecht.

Denn so, wie du das machst, passiert genau der obere Fehler, du definierst einen Charakter (diese werden mit '-Zeichen geschrieben) aus mehreren Zeichen, das geht nicht! Die doppelten Anführungszeichen definieren einen String. Der zweite Fehler ist dann ein "Folgefehler" aus dem ersten, da der compiler deine Schreibweise nicht verstanden hat und dann keine Argumente für das Format gefunden hat.

Gruss ppocket
 

Tarnhans

Granny Smith
Registriert
18.01.10
Beiträge
16
Wir haben das sowohl mit " als auch mit ' ausprobiert.
Wir haben nun vor das NSLOG void gepackt und nun funktioniert es wohl!
Habe leider gerade keinen Mac hier, sondern nur bei nem Freund.
 

Poljpocket

Salvatico di Campascio
Registriert
07.01.07
Beiträge
432
BTW... da fehlt eine {-Klammer nach dem if. Vielleicht ist das der Fehler... und void??? Kannst du mir das erklären?
 

Tarnhans

Granny Smith
Registriert
18.01.10
Beiträge
16
Ich schau mir das morgen mal an und schreibe dir dann hier.
Void soll laut sdk der einleitungsbegriff für das NSlog sein.

Morgen genaueres.
Danke erstmal
 

Poljpocket

Salvatico di Campascio
Registriert
07.01.07
Beiträge
432
Schau dir meinen letzten Post nochmal an. Das ist genau der Fehler. Hab deine compiler-Ausgabe nicht ganz gelesen, bzw. den Fehler "expected expression before @ token" total übersehen. Mit der Klammer (UND den doppelten Anführungszeichen) sollte dann alles im Butter sein.

Das mit dem void: neeee... nix Einleitungsbegriff, du meinst wohl eher der Rückgabewert und ja, der ist bei NSLog void, wie keiner! Abhilfe bei deinem Problem tut das void aber keine. Hab nie ausprobiert, was da passiert, wenn man einen Rückgabewert ohne irgendetwas vor einen Funktionsaufruf schreibt. Besser wird es aber sicher nicht :)

Gruss ppocket

PS: ja, warten wir morgen ab. :p
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
In Mainview.m we have this Error.
Expected expression before '@' token
And 2 warnings
Character constant too long for its type
Format not a string literal and no format arguments

Vielleicht könnt ihr uns ja helfen.
Wie Poljpocket schon richtig schrieb, sind die Hochkommata im NSLog verkehrt. Es müssen Anführungszeichen sein. Allerdings frage ich mich, warum Du das NSLog so kompliziert schreibst? Es geht auch einfacher:
Code:
NSLog(@"Failed to open url: %@", [url description]);
MacApple
 

Jorgo

Jonagold
Registriert
19.04.10
Beiträge
23
Liegt sicherlich an den "" wie ppocket schon gesagt hat.
Hochkommas kennt OC meines Wissens gar nicht.
Nach der if-Anweisung braucht man nicht unbedingt eine geschweifte Klammer. Die dient nur zur Übersicht, oder bei einer Verschachtlung!

Gruß Jorgo
 

Jorgo

Jonagold
Registriert
19.04.10
Beiträge
23
Zu spät! MacApple hats perfekt beschrieben :)
 

Poljpocket

Salvatico di Campascio
Registriert
07.01.07
Beiträge
432
upps... klaro, übersehen! Dachte das wäre die schliessende Klammer der if-Verzweigung da unten, der Code ist ja auch nicht strukturiert :)

Wisst ihr, was er mit Einleitungsbegriff meint?
 

Poljpocket

Salvatico di Campascio
Registriert
07.01.07
Beiträge
432
Ich würd mal meinen, wenn er nicht weiss, dass ' nicht für Strings zu verwenden sind, sondern nur für einzelne chars, dann kanns auch dort bei der void-Aussage happern :) Aber jetzt müssen wir ja erstmal warten, bis Code kommt :D
 

Jorgo

Jonagold
Registriert
19.04.10
Beiträge
23
Jaaaaa, genau! Vll kommt heute aber noch meiner.

Hätte gerne eine Expertenmeinung zu meinem Code!
 

Tarnhans

Granny Smith
Registriert
18.01.10
Beiträge
16
So.
Bei uns zeigen die Quellcodes nun succeded an, allerdings öffnet sich kein App.
Er zeigt uns auch beim Interfacebuilder keine Warnung an, lediglich bei dem "simulate Interface zeigt er uns lediglich den Pushbutton an.

Ist das ein Verbindungsfehler der Bilder o.Ä?
Ratlos!

Lg ;)
 

Jorgo

Jonagold
Registriert
19.04.10
Beiträge
23
Vll solltet ihr uns mal den Code senden. So wie ich mitbekommen habe, habt ihr den ja nach eigenem Ermessen umgeschrieben.
 

Tarnhans

Granny Smith
Registriert
18.01.10
Beiträge
16
Nur Gott weiß warum, aber es funktioniert derzeit!
Durch mehrmaliges kopieren und löschen des GLEICHEN Codes, hat sich der Fehler entfernen lassen.

Wir müssen noch ein bisschen was ändern und melden uns dann nochmal hier!
Natürlich auch, wenn alles geklappt hat.

Beste Grüße