在main.m中获取访问功能[iPhone]

时间:2011-01-12 20:54:54

标签: objective-c

我在做Universal Application,它在main.m类中有isPad()方法。我想在AppDelegates(iPad,iPhone)中使用此方法。

是的,它目前可以在AppDelegates中访问 <击>

<击>

**来自AppDelegate

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
    if (isPad()) // isPad() method locates main.m and is accessible through delegate.
                 // but I gets warning message 'Implicit declaration of function isPad()
    {

    }
}

来自main.m

BOOL isPad();
int main(int argc, char *argv[]) 
{ //detecting iPad and iPhone }
BOOL isPad()
{
   // method that detects the device.
}

为什么我收到警告信息'隐式声明函数isPad()? 我需要在AppDelegate.m中#include main.m吗?那怎么样? 我希望在任何其他类中使用此方法。

[[UIApplication sharedApplication].delegate isPad()];

<击>

是的,我弄错了!! 我用了两个代表一个用于垫,另一个用于手机。 只需使用一名代表即可完成。

对不起大家!

3 个答案:

答案 0 :(得分:1)

为什么要把你的isPad()方法放在main.m中?为什么不能将该方法放在共享的应用程序委托中,这样您应用程序中的所有类都可以访问它?我建议您只需在共享应用代理中创建isPad()方法,并避免将它们放在main.m中。

答案 1 :(得分:0)

  1. 您正尝试在Objective C对象上调用isPad()函数。
  2. 你在main()中定义了你的isPad()函数,那是什么?

答案 2 :(得分:0)

您在AppDelegate代码中收到的警告消息是因为 isPad 没有函数原型。您可以通过在AppDelegate实现文件中放置 BOOL isPad(); 来消除警告。

我强烈建议您将此逻辑移出主文件。