nsstring - sprintf to objective c -
i have line of code:
sprintf ( label, "lon %s lat %s", lonstr, latstr );
which want replace one:
nsstring*label = [nsstring stringwithformat:@"%s %s", lonstr, latstr];
once replace warning stating unused variable 'label
'. well, text supposed show no longer appears.
label
declared this:
char label[256] = { 0 };
is there missing here?
hi again,
so after following advice , doing research solution. note tha variables 'label', 'labeltwo' , 'labelthree' c++ code had convert objective-c:
coordlabel.text = [nsstring stringwithformat:@"%@ %@", [nsstring stringwithcstring:label encoding:nsisolatin1stringencoding], [nsstring stringwithcstring:labeltwo encoding:nsisolatin1stringencoding]];
thank you
i fear missing basic understanding of objective-c , relationship c.
nsstring *label = [nsstring stringwithformat:@"%s %s", lonstr, latstr];
will create nsstring
object pointed variable label
.
nsstring
, char *
2 different entities, former full-fledged objective-c object, whereas latter plain c string. don't expect nice happen if mistake 2 and, general suggestion, stick as possible nsstring
objects.
now, problem, doing creating formatted nsstring
miss step output content. can achieve using nslog
function follows
nslog(@"%@", label);
%@
format specifier used objective-c objects, nslog
accept other specifier accepted (s)printf
, in end can make shorter , write line:
nslog(@"%s %s", lonstr, latstr)
bottom line deduce lonstr
, latstr
c strings, considering told above strongly suggest use nsstring
instances instead.
edit
also
nsstring*label = [nsstring stringwithformat:@"%s %s", lonstr, latstr];
and
char label[256] = { 0 };
are both declarations of variable label
(with 2 different types, joy!).
the compiler should (rightfully) give error redefinition of 'label'
, hardly believe code can compile far.
Comments
Post a Comment