0

我在 xcode 模拟器中每次启动时都面临我的应用程序随机输出的问题。我正在使用 xCode 版本 4.6.3 。我尝试并执行了How to Empty Caches and Clean All Targets Xcode 4中提到的所有步骤, 但没有帮助。我为不同的设备系列使用不同的资源。(基本上我正在制作通用的 iOs 应用程序。)。请检查我在 AppDelegate.cpp 中使用的以下代码

CCSize screenSize = pEGLView->getFrameSize();

//set design size for iPad retina

CCSize designSize = CCSize(1536,2048); //1.33

float screenRatio = screenSize.height/screenSize.width;

std::vector<std::string> searchPaths;

if (screenSize.width > 768)
{
    searchPaths.push_back("ipadRetina");
}
else if (screenSize.width > 320)
{
    if (screenRatio == 1.5f) // && screenRatio < 1.775f)
    {
        searchPaths.push_back("iphoneRetina");
        designSize = CCSize(640,960);       
    }
    else if(screenRatio == 1.775f)
    {
        searchPaths.push_back("iphoneFive");
        designSize = CCSize(640,1136);
              }
    else
    {
        searchPaths.push_back("ipad");

    }
}
else
{
    searchPaths.push_back("iphone");
    designSize = CCSize(320,480);

}


CCEGLView::sharedOpenGLView()->setDesignResolutionSize(designSize.width, designSize.height, kResolutionShowAll);
CCFileUtils::sharedFileUtils()->setSearchPaths(searchPaths);
pDirector->setContentScaleFactor(screenSize.height/designSize.height);

每次我得到的输出都是完全随机的。有时图像会带有额外的缩放,之后,如果我关闭项目并重新运行它,输出(图像)会缩小。在下一次运行时,它与前两个输出完全不同。

我从上面的代码中观察到的是,当我尝试为 ipadRetina 运行应用程序时,它需要资源,有时来自 iphone 文件夹,有时来自 ipadRetina 文件夹。但是当我放置断点时,为 ipadRetina 文件夹设置了搜索路径。

请帮忙。

4

2 回答 2

0

似乎您的项目树中有多个具有相同名称的资源。当您引用名为 my-image.png 的图像并且您的项目中有多个具有该名称的图像时,Xcode 只会感到困惑。

避免此类问题的一个好方法是使用唯一的资源名称,例如:

game-image.png (for iPhone)
game-image-hd.png (for iPhone Retina)
game-image-ipad.png (for iPad)
game-image-ipad-hd.png (for iPad Retina)
于 2013-10-15T16:46:00.290 回答
-1

虽然它不是答案,但我找不到将其添加为评论的方法。@nomannasim我认为这不应该是问题,因为Deva正在为不同分辨率的设备维护不同的文件夹,并且选择哪个文件夹取决于运行应用程序的设备的宽度和纵横比。所以无论如何只有一个文件夹的路径是将在 CCFileUtils::sharedFileUtils() 的 searchPath 中设置。因此,在拾取资源时不会感到困惑。

于 2013-10-16T04:50:28.803 回答