NokiaのE90に関連した備忘録です。いつまで続くかな?
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
最近iPhoneのSDKでサンプルプログラムを参考にしてちょこっとプログラミングしてみました。
その時のポイントをObjective-Cの初心者として記録しておきます。

普段はWindowsのエディターを使い慣れているので、まずCygwinでCのメインの動作検証をしてから
最終的に文字列を表示出来るようになったものを関数としてSDKに登録しました。
SDKでもCygwinのgccで作成したソースをそのままエラー無しにコンパイル出来るので良かった
のですが、いざ文字列をtextviewに表示しようとしたところ、textviewはObjective-Cのオブジェクト
のNSStringを要求しています。
Objective-Cをいきなり理解できるほど頭が柔らかくないのでCでごりごりプログラミングしたことが
ここに来て裏目に出てしまいました。

そこで、Webで検索したりObjective-Cの本を読んだりしたのですが、NSStringのことについての
記述はすぐに見つかるのですが、Cの文字列をNSStringに変換する方法というのがなかなか
見つかりませんでした。単にObjective-Cを知らないが故の問題なのですが、、、
最終的にわかったのがstringWithCStringを使うと言うことでした。
このCStringというのが、一般的なC言語のcharで表される文字列だったんですね。
Objective-Cの中にNSStringとは違うCStringというオブジェクトがあるものだと思い込んで
しまっていたのが敗因です。
見たまんまとはこのことで、この記述を見つけたときは目から鱗が落ちる思いでした。

書いたコードはこんな感じで、GetMessage()がCで書かれた文字列を返す関数です。

textview.text = [NSString stringWithCString:GetMessage() encoding:NSUTF8StringEncoding];

以上、備忘録でした。
スポンサーサイト
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://hnaokixyz.blog109.fc2.com/tb.php/73-facbd4d6
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。