2010-12-12 12 views
0

私は、iOS XCodeプロジェクトの 'Delegate.m'ファイルの中にCスタイルの関数を持っています。この関数は、いくつかの 'import'や '@implementation'などの後にファイルの先頭で宣言されます。そのC関数の中では、NSStringが宣言され、値が割り当てられます(URL)。で:関数外のCスタイル関数からNSStringにアクセス

アプリケーションdidFinishLaunchingWithOptions: 'Delegate.m' ファイルでまだ

方法、私はのUIWebViewでそのURLを開きたいと思っています。私はすべてのコードを持っていますが、行の上に:

NSURL * myURL = [[NSURL alloc] initWithString:urlString];

私はエラーが言ってもらう:

'urlString' 宣言されていない 'urlStringは、' 私は言って警告を受けると宣言されたC関数で

未使用変数 'urlString'

私はそうのようなC関数にNSStringのを宣言しています:

NSStringの* urlString = [NSStringのstringWithFormat:@ "http://myurl.com/%dを"、ミント];

私は「可変スコープ」について理解していますが、私はプログラミングで始めているので、あまりよく分かりません。明らかに何かが間違っていて、どんな助けでも本当に感謝しています。

多くのありがとうございます。

+0

Cの関数はすぐに返すアプリケーションデリゲートでのObjective-Cクラスのメンバ関数に変換することができますNSStringです。それから、 "application didFinishLaunchingWithOptions:"から呼び出されます。なぜそれを行うことができないのですか? –

答えて

1

あなたのコードでは、urlString変数はスコープ内にのみ存在します。これはあなたが言及するCスタイル関数です。スコープの外部には存在しない/存在しません(関数)。

インポートの直後に、変数のスコープをファイルの先頭に宣言することで、変数 'global'のスコープを作成できます。あなたは再びそれを宣言しないように

NSURL *urlString; 

また、あなたがそれを初期化する行を変更します。

urlString = [NSString stringWithFormat:@"http://myurl.com/%d",myInt]; 
+0

一般的に、あなたはそうしたくありません。グローバルはすぐに非常に乱雑になります。 – bbum

+0

合意した、グローバルなヴァールは邪悪なものです。 OPの初心者であるので、私は彼に、彼がどんなことをしても動くことができるように迅速かつ汚れた解決策を提供すると思った。 –

+0

それは素晴らしい、多くの感謝を働いた! – baxterma

関連する問題