Objective-Cプログラミングから始めたばかりですが、C言語の経験があります。私はiOSに移植したいコード(約124行)を持っています。 OS X)。このコードの目的はURLを生成し、それをMobile Safariで開くことです。アプリケーションはユーザーインターフェイスを持たず、URLを生成して開くことを唯一の目的としているので、このコードをアプリケーションの起動時に実行します。iPhoneのObjective-CプロジェクトでCコードを実行する
私はいくつかの研究を行って、私はいくつかのコードは、起動時に実行されたい場合は、私は巻き毛の間
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { ... }
セクションで、「App_NameDelagate.m」ファイルにそれを置くために持っていることを見出しましたブラセス。問題は、私は私のコードを貼り付けし、(Xcodeで)それをコンパイルするとき、私はすべての関数の宣言では、と言って、約7かそこらのエラーと警告を取得し、次のとおりです。
ネストされた機能は使用し、無効になっています-fnested-関数は(私は私の様々な機能のためのコードを書き始める、そしてメインは「場合」機能が終了したとき)
そして、もう一つのポイントで再度有効にする
コントロールは非void型関数の終わりに到達しました
1つの "if"関数と "if"関数の間に呼び出される他の5つの関数で構成されています。
私は同じ目的(生成し、URLを開くために)のMac版のアプリケーションを構築するためにそれを使用し、それは正常に動作するので、それは自己であるコードを知っています。
OSXの場合と同じように、OS XからiOSにURLを開くときに、[NSWorkspace sharedWorkspace]
ではなく[UIApplication sharedApplication]
を使用すると、ココアの変更の一部が実現します。だから私はそれが問題だとは思わない。私はまた、 "main.m"ファイルで宣言されていることを知っているので、貼り付けられたコードの先頭にある "main"関数の標準宣言を削除しました。
私のアプリケーションのMac版では、私のコードをまっすぐに "main.m"ファイルに置くことができ、コードはコンパイルされ、アプリケーションは正常に動作します。私が収集するiOSでは、これは当てはまりません。
これについての助けがあれば、それは私を夢中にさせてくれて大いに感謝しています!
ありがとうございました。
UPDATE: '入れ子関数' で問題を引き起こし線である:
INT generateCrosswordNumber(){
INT getDayNumber(){
BOOL checkIfSunday(){
空隙handleSunday(){
void normalDay(){
これらの各行の下には、呼び出される関数のコードがあります。関数ごとに、上の行で開いているものを閉じる別の中括弧があります。
return YES
function reaches end of non-void function
エラーを修正しました。ありがとうございました!
警告/エラーの原因となっている行を引用できますか? 「制御は非ボイド関数の終わりに到達する」に関しては、メソッドの実装の最後の行に 'return YES;'を挿入します: " - (BOOL)..."メソッドシグネチャはメソッドがBOOL値を返すことを期待しています。 – Costique
ありがとうございました。Costique、 "return YES"はうまくいきました。問題の原因となっている行の引用符を更新しました。 – baxterma