小编San*_*aus的帖子

如果用户强行退出,iOS会将我的应用程序启动到后台吗?

我通过content-available在推送通知上使用标志来触发后台获取.我有fetchremote-notification UIBackgroundModes启用.

这是我在AppDelegate.m中使用的实现:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    NSLog(@"Remote Notification Recieved");
    UILocalNotification *notification = [[UILocalNotification alloc] init];
    notification.alertBody =  @"Looks like i got a notification - fetch thingy";
    [application presentLocalNotificationNow:notification];
    completionHandler(UIBackgroundFetchResultNewData);

}
Run Code Online (Sandbox Code Playgroud)

当应用程序在后台运行时,它可以正常工作.(收到通知,应用程序触发"看起来像我收到通知"本地通知,因为上面的代码应该这样做).

但是,当应用程序未运行并且收到带有content-available标志的推送通知时,应用程序不会启动,并且didRecieveRemoteNotification永远不会调用委托方法.

WWDC视频最新的多任务处理(来自WWDC 2013的#204)显示了这一点:在此输入图像描述

它表示当收到带有content-available标志的推送通知时,应用程序将"启动到后台" .

为什么我的应用程序没有启动到后台?

所以真正的问题是:

用户强行退出应用后,iOS会执行后台任务吗?

push-notification apple-push-notifications ios ios7

217
推荐指数
4
解决办法
12万
查看次数

是否可以调试"由于内存错误而终止"?

在我的应用程序运行时的某个(一致)点,我一直收到xcode错误消息

由于内存错误而终止.

我找不到导致错误的代码,但我可以告诉错误附近的代码(使用断点).

在我的实现中返回某个单元格后直接导致错误

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)

UITableViewDataSource委托方法.我可以确认它返回有效UITableViewCell,但我认为解释和发布整个方法将浪费你的时间.但是,我怀疑它可能是由快速,大量的内存分配引起的.

它肯定说Terminated due to memory error,而不是记忆压力.

我想知道什么是信息真的意味着什么.另外,有没有办法调试此消息?没有生成崩溃报告.

我正在使用ARC和iOS 7.

memory-management objective-c ios automatic-ref-counting

74
推荐指数
6
解决办法
8万
查看次数

Xcode 6错误:"嵌入式二进制文件包标识符不以父应用程序的包标识符为前缀."

我正在尝试构建一个扩展项目,Xcode不断抛出主题中的错误.

Xcode日志错误

不用一天,扩展程序的包ID 以app的包ID 前缀.

产品名称: ro.chitza.TodayPics.$(TARGET_NAME:rfc1034identifier

扩展束id

我已经尝试清理构建文件夹并重建,没有运气.有趣的是,整个项目已经构建了几次,但在一些代码和UI更改后,它开始失败.即使我创建了新项目,在大约5-6个构建之后也会发生同样的事情.

有没有人遇到这个错误?有关解决方案或解决方法的任何提示吗?

xcode6 ios8 ios-app-extension

62
推荐指数
8
解决办法
5万
查看次数

存档期间的警告在Xcode 6中使用iOS 8扩展的应用程序

存档我的应​​用时遇到问题.

我为iOS 8扩展创建了一个新目标.

归档应用程序时,我收到警告.

警告是

"PBXCp警告","警告:跳过复制阶段,二进制代码签名:/ Users/Library/Developer/Xcode/DerivedData/App/Build/Intermediates/ArchiveInter mediates/AppName/IntermediateBuildFilesPath/UninstalledProducts/AppExtappex/AppE xt"

该应用程序位于Objective-C中.

xcode objective-c ios ios8 ios-app-extension

57
推荐指数
4
解决办法
1万
查看次数

Today Widget扩展的配置文件

我试图提交我的应用程序提交但是我遇到代码签名问题.

基本上我的应用程序有一个Today Widget扩展.我不确定我应该将配置文件设置为什么.我假设我只使用我用于我的应用程序的相同配置文件,但是我收到此错误:

构建设置("AppName")中指定的配置文件的AppID为"BundleID",与您的软件包标识符"BundleID2"不匹配.Xcode可以通过从成员中心下载新的配置文件来解决此问题.

我当然可以点击"修复问题",但这实际上解决了这个问题吗?它只是将我的分发设置更改为"iOS Developer"并为"自动"提供配置文件.

xcode ios provisioning-profile ios-app-extension

49
推荐指数
1
解决办法
2万
查看次数

openURL在Action Extension中不起作用

我添加以下代码:

- (IBAction)done {
    // Return any edited content to the host app.
    // This template doesn't do anything, so we just echo the passed in items.

    NSURL *url = [NSURL URLWithString:@"lister://today"];
    [self.extensionContext openURL:url completionHandler:^(BOOL success) {
        NSLog(@"fun=%s after completion. success=%d", __func__, success);
    }];
    [self.extensionContext completeRequestReturningItems:self.extensionContext.inputItems completionHandler:nil];

}
Run Code Online (Sandbox Code Playgroud)

在我创建Action Extension目标之后.但它无法奏效.

我的目的是:当用户在Photos.app(iOS的默认Photos.app或被调用的图库)中查看照片时,他点击分享按钮以启动我们的扩展视图.我们可以将Photos.app中的图像传输到我自己的应用程序,并在我的应用程序中处理或上传图像.

我也尝试"CFBundleDocumentTypes"但它也无法工作.

任何帮助将不胜感激.

ios ios8 ios-app-extension

46
推荐指数
11
解决办法
3万
查看次数

如何(轻松)删除Xcode 6中Interface Builder中的约束

假设您已选择了一个对象,并且在"工具"面板中打开了"大小选择器".您可以看到应用于对象的约束列表.在约束列表中,您可以单击小齿轮并选择删除.你不能在Xcode 6中.

在IB中删除约束仍有几种方法:

  • 在文档大纲中找到约束并以这种方式删除它(但很难找到).
  • 单击故事板中的小栏并以该方式删除(可能难以点击).
  • 双击"大小选择器"中的约束,该约束将打开"属性"检查器并突出显示"文档大纲"中的约束.如果要删除多个,这可能会很麻烦.

不过,我想念齿轮删除功能的易用性,我想知道它是否仍然以类似的方式存在,我只能找到它.虽然其他方式有效,但我发现自己浪费了大量时间,特别是在使用新的大小级别功能时.那么,找到一种更简单的方法来删除它们?

xcode autolayout xcode6

42
推荐指数
2
解决办法
3万
查看次数

具有多个目标的iOS扩展

在iOS 8中,当我们创建一个新的扩展时,我们必须决定它附加到哪个目标.扩展名将具有与目标相同的捆绑包ID前缀.

  1. 之后有什么方法可以改变目标吗?
  2. 如果我的项目包含2个(或更多)目标(例如一个用于调试/模拟器,一个用于生产/设备),那么使用扩展的最佳方法是什么?我是否需要创建另一个扩展并复制代码(为两个目标保留相同的代码非常麻烦)?

duplicates target ios ios8 ios-app-extension

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

Xcode 6中的"嵌入式内容包含Swift代码"构建设置有什么作用?

这是"构建选项"下的新设置.它有什么作用?我似乎无法找到任何有关它的文档.我的猜测是:它是否必须YES在混合的Objective-C/Swift应用程序中设置为告诉Xcode链接Swift运行时?

xcode swift xcode6 ios-app-extension

35
推荐指数
1
解决办法
2万
查看次数

iOS 8自定义键盘:更改高度

我试图在iOS 8中创建一个替换库存的自定义键盘.我真的搜索过,无法找出是否有可能创建一个比iOS iOS键盘更高的键盘.我替换了UIInputView,但永远无法改变我可用的高度.

keyboard ios8 ios-app-extension

34
推荐指数
5
解决办法
3万
查看次数