小编Gav*_*avy的帖子

NSFileManager监视目录

您将如何监视目录NSFileManager

我想在我的应用程序运行时检测何时在我的文档目录中删除/添加了文件。

iphone xcode nsfilemanager ios

6
推荐指数
2
解决办法
4663
查看次数

iOS UIAppearance错误

我正在构建一个文件管理应用程序,在调用a UIImagePickerController或a 时偶尔会出现以下错误MPMediaPickerController:

*** -[_UIImageViewPretiledImageCacheKey hash]: message sent to deallocated instance 0x140dc0
Run Code Online (Sandbox Code Playgroud)

我最近使用iOS 5的UIAppearance API为我的应用程序提供了一个自定义主题,当我开始收到此错误时就是这样.通过猜测和检查,我发现我的代码有问题的行导致了这个错误:

UIImage *backButtonImage = [[UIImage imageNamed:@"backButton.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(12, 16, 12, 8)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
UIImage *barButtonImage = [[UIImage imageNamed:@"barButton.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(14, 12, 14, 12)];
[[UIBarButtonItem appearance] setBackgroundImage:barButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)

我不知道这段代码是如何触发上述错误的.你能否向我解释一下这个错误的来源,并提供一个解决方案来解决它.

提前感谢您的帮助,Guvvy

xcode objective-c ios5 uiappearance

6
推荐指数
1
解决办法
777
查看次数

UIAppearance为UIPopoverController删除自定义NavBar背景

我正在整合iOS 5的UIAppearance功能,为我的通用应用程序提供了一个独特的主题.目前,我已在App Delegate中实现了一些代码,以便为应用程序提供自定义导航栏:

UIImage *navBarImage = [[UIImage imageNamed:@"navigationBar.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(7, 7, 7, 7)];
[[UINavigationBar appearance] setBackgroundImage:navBarImage forBarMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)

这很好用,并将所有导航栏从Apple的简单样式更改为明亮的渐变.但是,我遇到的问题是它覆盖了一些我不想要它的风格.我的特殊问题是它覆盖了iPad的UIPopoverController中的导航栏背景,创造了一种丑陋的用户体验.请告诉我如何解决它.

编辑:请注意,这是一个通用应用程序,我通过iPad上的UIPopoverController和iPhone/iPod上的模态视图打开图像选择器.我只想删除iPad弹出窗口上navBar的自定义背景,而不是模态视图.

目前看起来如何: 在此输入图像描述

我希望它看起来像: 在此输入图像描述

提前感谢您的帮助,Guvvy

xcode objective-c uipopovercontroller ios5 uiappearance

6
推荐指数
1
解决办法
3018
查看次数

iOS - 更改主屏幕和Spotlight的应用程序名称

我正在开发一个新的iOS应用程序,它有一个很长的名字,所以我通过追踪文件中的Bundle Display Name值来在主屏幕上显示缩短的版本Info.plist.但是,我想在用户通过聚光灯搜索时显示全名.我该如何实现呢?

谢谢

spotlight ios

6
推荐指数
1
解决办法
2316
查看次数

Xcode设置兼容设备

我几天前在iOS App Store上发布了我的第一个应用程序,并告诉我的朋友下载它.但是,他们告诉我它与运行iOS 4.2.1的iPod Touch 2G不兼容.为什么是这样?我该如何解决这个问题?

我正在使用Xcode 4.2和iOS SDK 5.0,但我的部署目标是iOS 4.0,所以它应该可以工作.

在我的应用程序的iTunes页面上,它说:要求:兼容iPhone 3GS,iPhone 4,iPhone 4S,iPod touch(第3代),iPod touch(第4代)和iPad.需要iOS 4.0或更高版本.

如何在此列表中包含iPod Touch 2G?我有一个iPod 3G作为我的测试设备之一,我的应用程序完美地工作.

在此先感谢您的帮助,

Guvvy

iphone xcode compatibility ipod-touch ios

3
推荐指数
1
解决办法
2781
查看次数

iOS后台任务完成编程

我正在尝试在退出iOS应用程序的前台后添加对完成任务的支持.我在互联网上看到的所有教程都指出我在Application Delegate中写这样的东西:

- (void)applicationDidEnterBackground:(UIApplication *)application {
    if ([[UIDevice currentDevice] isMultitaskingSupported]) {
        UIApplication *application = [UIApplication sharedApplication];
        __block UIBackgroundTaskIdentifier background_task;
        background_task = [application beginBackgroundTaskWithExpirationHandler: ^ {
            [application endBackgroundTask: background_task];
            background_task = UIBackgroundTaskInvalid;
        }];

        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

            //DO STUFF IN BACKGROUND HERE
            MyTask *task = [[MyTask alloc] initWithURL:@"http://google.com"];
            [task setDelegate:self];
            [task start];

            [application endBackgroundTask: background_task];
            background_task = UIBackgroundTaskInvalid;
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

该任务能够启动,但在启动后,下一行将被处理,我的应用程序将被终止.我可以告诉MyTask由于委托调用而停止的时间,但是如何更改我的程序,以便在调用委托后将后台任务设置为无效.我会搬家吗?

[application endBackgroundTask: background_task];
background_task = UIBackgroundTaskInvalid;
Run Code Online (Sandbox Code Playgroud)

委托功能,还是我需要做其他事情.

提前感谢您的帮助,Guvvy

xcode objective-c multitasking ios4

3
推荐指数
1
解决办法
6122
查看次数