我刚刚开始在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