HintergrundWie gibt man Werte eines benutzerdefinierten Typs mit NSLog aus?
ich VES bin mit dem Kiwi-Punktwolke Betrachter auf iOS-Geräten zu nutzen.
Fehler
vesVector3f v = self->mKiwiApp->cameraFocalPoint();
NSLog(@"%@", v);
Ergebnisse in
Cannot pass non-POD object of type `vesVector3f` (aka 'Matrix<float, 3, 1>') to variadic function; expected type from format string was 'id'
Frage
Ich verstehe, dass NSLog
zur Ausgabe ein Objekt vom Typ erwartet wird id
. Wie bekomme ich NSLog
zum Ausgabetyp vesVector3f
?
Extradetails
Hier sind einige Details, die ich über den benutzerdefinierten Typ gefunden. Es scheint Vector3f
ist ein Vektor von 3 Schwimmern.
typedef Eigen::Vector3f vesVector3f;
EIGEN_MAKE_TYPEDEFS_ALL_SIZES(float, f)
Lösung
Per trojanfoe
‚s Kommentar:
NSLog(@"%f, %f, %f", v(0, 0), v(1, 0), v(2, 0));
Ich wusste nicht, "Objective-C++" war ein Begriff, aber ja, es ist definitiv so. Dies gab mir zunächst eine "SIGABRT", aber nachdem ich die Parameter in 'v (n, m) umgedreht hatte, konnte ich die Werte erhalten, nach denen ich suchte. – Jacksonkr
@Jacksonkr Prost; Argumente in meiner Antwort für zukünftige Besucher. – trojanfoe