• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Objective-CでCの関数に引数をわたしてあげたいのですが。)

Objective-CでCの関数に引数をわたす方法

bobの回答

  • ベストアンサー
  • bob
  • ベストアンサー率50% (52/103)
回答No.1

私も同じサイトで勉強しながら簡単なアプリを作った時、同じようなことでずいぶん悩みました。 [opfile filename]は今ヘルプで見たところNSStringのNSArrayのようですね。 NSString型のオブジェクトはcStringメソッドでchar *型に変換できます。 ここではファイルパスなので多分特に気にする必要はないと思われますが、エンコーディングの関係で何かいろいろあるようなので、一応ヘルプでNSString関係を一通り眺めておいた方がいいと思います(このあたりはわたしも良く分かってません)。 ProjectBuilderのヘルプって一応何でも書いてあるみたいで慣れて来ると便利そうだけど、こういった根本的なところを調べるのにはあまり向いてないですよね... 私も本買おうかな。

akira398
質問者

お礼

どうもありがとうございます。もうちょっと調べてみようと思います. あ、でもこの本は高いだけでInterfaceBuilderに関することは少しも書いてないので画面構築するかたにはあまりむいてないように思います。でもこの問題でもう 10時間くらい費やしているような・・・仕事でMacは使うもんじゃないですね・・

関連するQ&A

  • Objective-CとCの結合について

    今Cの関数から文字列をもらってObjective-Cでウィンドウに表示させようとしているのですが、initWithCStringとかstringWithCStringの使い方がよくわかりません。今具体的にいうと #import "test.h" @implementation test +(void) testes:(NSString *)aaaa { [ output setStringValue : aaaa ]; } @end void Output_window(char *cccc) { NSString *aaaa; aaaa = [aaaa initWithString:aaaa]; [test testes : aaaa]; } こんなソースを書いてます。*ccccはCの文字列でoutputはoutletです。Output_windowをCソースのほうで呼び出して文字列をもらっています。どこがおかしいんでしょうか?指摘していただけませんか?最後の行でwarningが出るんですがそこだけがおかしいのかよくわかりません。Objective-Cをはじめて一週間程度ですので文法のことがいまいちよくわからないのでよろしくお願いします。 環境はMacOSX、ProjectBuilderとInterfaceBuilderでcocoaです。

  • PHPのsubstr関数をC++とObjective-C++に置き換え

    PHPのsubstr関数をC++とObjective-C++に置き換える方法 ・PHP $s = "abcdefg"; $t = substr($s, 3, 2); というPHPのソースから C++と Objective-C++に変更したいのですが どう記述すればよいのでしょうか? ・C++ char s[] = "abcdefg"; ??? ・Objective-C++ iOSは3.2です。 NSString *s = @"abcdefg"; ???

    • ベストアンサー
    • Mac
  • 関数へ引数を渡す時・・・(C言語)

    Cを始めたばかりです。 レベルの低い質問だと思いますがお願いします。 【ソース】 /* a1.c */ #include <stdio.h> void aaa(char); int main( int argc, char *argv[] ) { char box[] = "test"; aaa(box); return 0; } /* a2.c */ #include <stdio.h> void aaa(char box) { printf( "%s",box ); } 【質問】 変数boxの中身を関数aaaに渡したいだけですが、 上記ソースをコンパイルすると、a1.cの aaa(box) の部分でエラーが出てしまいます。 どうもデータ型(ポインタ?)がまずいようですが、 何が問題なのでしょうか? 御回答宜しくお願い致します。

  • objective-c main関数について

    私はobjective-cを用いてiPhone用アプリケーションを自主的に開発していますが、main.mのmain関数の中身がいまいち分かりません。 もししっかり分かる方が居ましたら教えていただけるとうれしいです。 私はプログラミング歴半年とちょっとのほぼ初心者です。 以下がソースコードです int main(int argc, char *argv[]) { NSAutoreleasePool * pool

  • sscanf() 関数の第 1 引数の型

     カーニハン/リッチー・著,石田晴久・訳の「プログラミング言語 C・第 2 版」で,「付録 B」にある sscanf() 関数のプロトタイプが   int sscanf(char *s, const char *format, ...) とあって,疑問に思いました。この第 1 引数の型は,「char *」ではなくで「const char *」のほうが合理的のように思えるのです。JIS X 3010-2003 では,const がついていましたし,さまざまな解説・マニュアルでも const つきで示されています。  そこで,ANSI C または JIS X3010-1993 の仕様書をお持ちの方,それらの仕様書の中で sscanf() 関数がどのようなプロトタイプを持っているか,ご教示願えませんでしょうか。ひょっとしたら本当に const がついていないのかもしれないし,書籍から何らかの理由で const が抜け落ちてしまったのかもしれません。  細かい点で恐縮ですが,ご回答くだされば幸いです。

  • Cocoa+Objective-Cで、CSVファイルを読み込んで数値計算させたい。

    Cocoa+Objective-Cを勉強仕始めて数週間の初産者です。C言語は、理解出来ます。xcode1.5を、使っています。 <やりたい事>  CSVファイルを読み込んで、数値計算をさせたいと思います。計算結果は、NSTableViewに表示させたい。 CSVファイルのフォーマットは、次の通り。 123.45, 12345.55, 345.66, 89,00↓ 123.45, 145.55, 3345.66, 89,00↓ (これが続く。) [EOF] 参考書は、 Happy Macintosh Developing Time (Second Edition) Mac OSX Cocoa プログラミング (アーロン・ヒガレス著) この二冊は、持ってます。 しかし、読んでみたモノの、どこから手を付けて善いのやらサッパリ判りません。何か良い切り口はがありましたら、教えて頂けませんか?  現状、抱えている疑問点を、列挙してみます。 1.新規プロジェクトは、ドキュメント・ベース・アプリケーションが適してますか? 2.配列の意味合いが、C言語の意味合いと違っている。CSVデータは、NSArrayに繋げればいいの? 3.ファイル・オープンは、C言語のそれと違うのですか? 4.等々  取り敢えず、簡単そうな処から始めたいと思います。(ファイルを読み込んで表示させる辺りは押さえておきたいと思います。・・・・・欲張りすぎでしょうか?)  ご教示の程、よろしくお願いします。

  • objective-cで、バイナリの読み込みに関して。

    objective-cで、バイナリの読み込みに関して。 バイナリファイルが容易してあり。 例えば Cで下のようなソースで読み込みできるとします。 typedef struct tagTTestStruct { int data1; int data2; char data3; } TTestStruct; int main() { TTestStruct testdata; FILE *fp; fp = fopen( FILENAME , "rb" ); fread( &testdata , sizeof( testdata ) , 1 , fp ); fclose( fp ); printf( "data1 = %d , data2 = %d , data3 = %d\n" ,testdata.data1,testdata.data2,testdata.data3 ); return 0; } これを、objective-cらしく書くにはどうしたらいいのでしょうか、、、 nsdataやnsarchiverを調べてみたのですが、よくわからないんです。 また、参考になるようなサイトがあればおしえてほしいです。

  • Objective-Cで、NSStringのオブジェクトの解放を行って

    Objective-Cで、NSStringのオブジェクトの解放を行っているサンプルをよく見るのですが NSString *s = @"test"; const char *p = [s UTF8String]; [s release]; ... ここでpにアクセスするとどうなるのでしょうか? [s release]とおおもとを解放しているので怪しいと思いますがそれは正しいでしょうか? あと関数内なら [s release]としなくても自動解放?(ガーベージコレクション) はしてくれるのでしょうか? Objective-Cでのメモリの有効期間や解放について詳しくかかれている本やサイトの情報も探しています。

    • ベストアンサー
    • Mac
  • Cocoa をコマンドラインから実行して引数を受け取りたい

    C・Objective-C に関して全くの初心者ですが、よろしくお願いします。 Cocoa で作ったアプリをコマンドラインから実行して、渡した引数を NSObject のサブクラスで受け取りたいのですがどうしたらよいでしょうか。 main.m の main 関数で受け取る方法はわかったのですが、サブクラス MyObject.m 内の任意のメソッドに渡す方法がわかりません。 // 引数を受け取って表示する int main(int argc, char *argv[]) {   fprintf(stdout, "%s\n", argv[1]);   return NSApplicationMain(argc, (const char **) argv); } ご教示いただけますと幸いです。

  • C言語で分割ファイル先の関数を呼び出す時

    いつもお世話になっております. C言語の関数の呼び出しについて質問があります. main文と同じファイルにある関数は,main文より上に記述している場合は プロトタイプ宣言で呼び出すことが出来ますが,ファイルを関数ごとに分割した場合はどうしたら良いのでしょうか? 例えば main_file.c と function_file.c という2つのファイルがあり, それぞれ main と function という関数を持っているとします. main文からfunction関数を呼び出したい場合, 私はいつも main_file.c 内で include "function_file.c" としていますが, これが一般的な方法なのでしょうか? 問題点や改善点を挙げて頂けると助かります. よろしくお願い致します.