我剛剛開始在Objective-C編程,我有經驗與C.我有一些代碼(約124行),我想移植到iOS(從OS X)。代碼的目的是生成一個URL,然後在Mobile Safari中打開它。鑑於該應用程序沒有用戶界面,並且它只是生成和打開URL的唯一目的,我希望在啓動應用程序時執行此代碼。執行C代碼在iPhone Objective-C項目啓動
我做了一些研究,發現如果我想要一些代碼在啓動執行我不得不把它放在「App_NameDelagate.m」文件,在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { ... }
部分,捲曲之間brases。問題是,當我在我的代碼粘貼,並編譯它(在Xcode),我得到約7個左右的錯誤和警告,他說,在每一個函數聲明:
嵌套功能被禁用,則使用-fnested-功能重新啓用
在一個點(當我開始寫我的各種功能的代碼,和主「如果」函數結束)
控制到達非void函數的端
它自己的代碼由1個「if」函數和大約5個在「if」函數中調用的其他函數組成。
我知道自己的代碼很好,因爲我用它來構建具有相同目的的應用程序的Mac版本(以生成並打開URL)並且工作正常。
從OS X到iOS,我意識到一些Cocoa的變化,就像在OSX上使用[UIApplication sharedApplication]
而不是[NSWorkspace sharedWorkspace]
一樣在iOS上打開URL。所以我不認爲這是問題。我也在我的粘貼代碼的開始處刪除了「main」函數的標準聲明,因爲我知道它也在「main.m」文件中聲明。
在我的應用程序的Mac版本中,我能夠將代碼直接放入「main.m」文件中,代碼會編譯並且應用程序運行得很好。在iOS上我收集,情況並非如此。
任何與此有關的幫助將不勝感激,因爲它讓我瘋狂!
謝謝。
UPDATE:使問題 '嵌套函數' 行是:
INT generateCrosswordNumber(){
INT getDayNumber(){
布爾checkIfSunday(){
空隙handleSunday(){
void normalDay(){
以下每行代碼都是調用函數的代碼。對於每個功能,都有另一個花括號,用於關閉上面幾行打開的花括號。
該return YES
修復了function reaches end of non-void function
錯誤,工作很好,謝謝!
你能引用引起警告/錯誤的行嗎?對於「控制到達非空函數結束」,插入'return YES;'作爲方法實現的最後一行:「 - (BOOL)...」方法簽名期望方法返回一個BOOL值。 – Costique 2010-12-11 14:01:53
感謝Costique,「返回YES」效果很好,已更新了帖子引起問題的線條。 – baxterma 2010-12-11 14:17:57