Hallo liebe Community!
Ich habe ein Problem, und zwar wollte ich mal gucken, wie weit man Obj-C und C++ mixen kann und hab direkt ein kleines Beispiel gebastelt, welches ein Passwort überprüfen soll.
Als erstes wird der Text im Passwort-Feld als NSString ausgelesen, dann per cStringUsingEncoding: in einen C-String umgewandelt und dann an die Methode der C++-Klasse übergeben, die überprüft, ob das Passwort richtig ist. Nur leider kommt beim Überprüfen in der C++Klasse immer false heraus
Hier mal ein paar Code Auszüge:
// CViewController.h
Alles anzeigen
// CViewController.mm
Alles anzeigen
// CClass.h
Alles anzeigen
// CClass.cpp
Alles anzeigen
Weiß jemand was ich falsch mache?
Ich habe die Vermutung, dass das Encoding was ich angegeben habe falsch ist.
Im Anhang ist auch nochmal das komplette Projekt.
Danke schonmal im Vorraus für jegliche Hilfe!!
PS: Hoffe ich habs ins Richtige Forum gepackt, war mir nicht ganz sicher :s
Ich habe ein Problem, und zwar wollte ich mal gucken, wie weit man Obj-C und C++ mixen kann und hab direkt ein kleines Beispiel gebastelt, welches ein Passwort überprüfen soll.
Als erstes wird der Text im Passwort-Feld als NSString ausgelesen, dann per cStringUsingEncoding: in einen C-String umgewandelt und dann an die Methode der C++-Klasse übergeben, die überprüft, ob das Passwort richtig ist. Nur leider kommt beim Überprüfen in der C++Klasse immer false heraus
Hier mal ein paar Code Auszüge:
// CViewController.h
Quellcode
// CViewController.mm
Quellcode
- #import "CViewController.h"
- #import "CClass.h"
- @implementation CViewController
- #pragma mark -
- #pragma mark init/dealloc
- - (id) init {
- self = [super init];
- if (self != nil) {
- myCClass = new CClass;
- }
- return self;
- }
- - (void) dealloc {
- delete myCClass;
- [super dealloc];
- }
- #pragma mark -
- #pragma mark IBActions
- - (IBAction)pushCheck:(NSButton *)sender {
- if(myCClass->checkPassword([[label stringValue] cStringUsingEncoding: NSUTF8StringEncoding])) {
- [label setStringValue:@"Richtig!"];
- /*
- passwordField.enabled = NO; // Wie funktioniert das in Cocoa?
- */
- } else
- [label setStringValue:@"Falsches Passwort!"];
- }
- @end
// CClass.h
C-Quellcode
// CClass.cpp
C-Quellcode
Weiß jemand was ich falsch mache?
Ich habe die Vermutung, dass das Encoding was ich angegeben habe falsch ist.
Im Anhang ist auch nochmal das komplette Projekt.
Danke schonmal im Vorraus für jegliche Hilfe!!
PS: Hoffe ich habs ins Richtige Forum gepackt, war mir nicht ganz sicher :s