[Cocoa/Obj-C] Onjuiste stringwaarde (f)printf

Pagina: 1
Acties:

  • Norm2782
  • Registratie: September 2003
  • Laatst online: 06-12-2016

Norm2782

Norm Trooper

Topicstarter
Mijn probleem:
Als ik een string value van een textfield probeer weg te schrijven in een bestand, krijg ik ?s?t als string waarde... bij elk veld.

Voorbeeld:
in voorbeeld [fldStringTest stringValue] is "string"

fprintf(fp,"Dit is een string : %s", [fldStringTest stringValue]);

Output hiervan is dan:

Dit is een string : ?s?t

Het rare is dat ie met een integer het wel prima doet:

in voorbeeld [fldIntTest intValue] is 123

fprintf(fp,"Dit is een int : %i", [fldIntTest intValue]);

Output hiervan is dan (zoals het hoort):

Dit is een int : 123

Wat zie ik hier over het hoofd...?

Norm 2782, why are you here?


  • Vaagharses
  • Registratie: Maart 2001
  • Laatst online: 22-12-2022
Ik weet niet waar je de methode stringValue vandaan haalt, want mijn NSString klasse kent deze methode niet. Maar ik heb wel een oplossing voor je als je gebruik maakt van de NSString klasse.

Dit zou moeten werken:

printf(" test: %s", [aNSString cStringUsingEncoding:NSUTF8StringEncoding]);

[ Voor 7% gewijzigd door Vaagharses op 21-03-2006 18:42 ]

Anti Geluidsmuur Front Amstelveen telt 17.800 lantaarnpalen; hoeveel heeft jouw gemeente?


  • Norm2782
  • Registratie: September 2003
  • Laatst online: 06-12-2016

Norm2782

Norm Trooper

Topicstarter
Hmm... cStringUsingEncoding:NSUTF8StringEncoding komt wel voor in mn autocomplete lijstje, maar hij geeft het volgende als error:

-[NSTextField cStringUsingEncoding:]: selector not recognized [self = 0x3656d0]

Waarschijnlijk, bedenk ik net, omdat het hier om de inhoud van een textfield gaat en niet om een NSString. Dat er een encoding probleem is lijkt me goed mogelijk.

NSTextField inherrit van NSControl, die dus de stringValue method heeft.

Zou het kunnen zijn dat ik de stringValue nog moet encoden naar UTF8?

EDIT

OK! Net opgelost. De stringValue op een NSTextField returned een NSString.

De oplossing was dus:

fprintf("Dit is een string: %s", [[testTextField stringValue] cStringUsingEncoding:NSUTF8StringEncoding]);

Met vele dank _/-\o_

[ Voor 21% gewijzigd door Norm2782 op 21-03-2006 19:25 ]

Norm 2782, why are you here?