我通过content-available在推送通知上使用标志来触发后台获取.我有fetch和remote-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会执行后台任务吗?
在我的应用程序运行时的某个(一致)点,我一直收到xcode错误消息
由于内存错误而终止.
我找不到导致错误的代码,但我可以告诉错误附近的代码(使用断点).
在我的实现中返回某个单元格后直接导致错误
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)
UITableViewDataSource委托方法.我可以确认它返回有效UITableViewCell,但我认为解释和发布整个方法将浪费你的时间.但是,我怀疑它可能是由快速,大量的内存分配引起的.
它肯定说Terminated due to memory error,而不是记忆压力.
我想知道什么是信息真的意味着什么.另外,有没有办法调试此消息?没有生成崩溃报告.
我正在使用ARC和iOS 7.
我正在尝试构建一个扩展项目,Xcode不断抛出主题中的错误.

不用一天,扩展程序的包ID 以app的包ID 为前缀.
产品名称: ro.chitza.TodayPics.$(TARGET_NAME:rfc1034identifier

我已经尝试清理构建文件夹并重建,没有运气.有趣的是,整个项目已经构建了几次,但在一些代码和UI更改后,它开始失败.即使我创建了新项目,在大约5-6个构建之后也会发生同样的事情.
有没有人遇到这个错误?有关解决方案或解决方法的任何提示吗?
存档我的应用时遇到问题.
我为iOS 8扩展创建了一个新目标.
归档应用程序时,我收到警告.
警告是
"PBXCp警告","警告:跳过复制阶段,二进制代码签名:/ Users/Library/Developer/Xcode/DerivedData/App/Build/Intermediates/ArchiveInter mediates/AppName/IntermediateBuildFilesPath/UninstalledProducts/AppExtappex/AppE xt"
该应用程序位于Objective-C中.
我试图提交我的应用程序提交但是我遇到代码签名问题.
基本上我的应用程序有一个Today Widget扩展.我不确定我应该将配置文件设置为什么.我假设我只使用我用于我的应用程序的相同配置文件,但是我收到此错误:
构建设置("AppName")中指定的配置文件的AppID为"BundleID",与您的软件包标识符"BundleID2"不匹配.Xcode可以通过从成员中心下载新的配置文件来解决此问题.
我当然可以点击"修复问题",但这实际上解决了这个问题吗?它只是将我的分发设置更改为"iOS Developer"并为"自动"提供配置文件.
我添加以下代码:
- (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"但它也无法工作.
任何帮助将不胜感激.
假设您已选择了一个对象,并且在"工具"面板中打开了"大小选择器".您可以看到应用于对象的约束列表.在约束列表中,您可以单击小齿轮并选择删除.你不能在Xcode 6中.
在IB中删除约束仍有几种方法:
不过,我想念齿轮删除功能的易用性,我想知道它是否仍然以类似的方式存在,我只能找到它.虽然其他方式有效,但我发现自己浪费了大量时间,特别是在使用新的大小级别功能时.那么,找到一种更简单的方法来删除它们?
在iOS 8中,当我们创建一个新的扩展时,我们必须决定它附加到哪个目标.扩展名将具有与目标相同的捆绑包ID前缀.
这是"构建选项"下的新设置.它有什么作用?我似乎无法找到任何有关它的文档.我的猜测是:它是否必须YES在混合的Objective-C/Swift应用程序中设置为告诉Xcode链接Swift运行时?
我试图在iOS 8中创建一个替换库存的自定义键盘.我真的搜索过,无法找出是否有可能创建一个比iOS iOS键盘更高的键盘.我替换了UIInputView,但永远无法改变我可用的高度.
ios ×6
ios8 ×5
xcode ×4
xcode6 ×3
objective-c ×2
autolayout ×1
duplicates ×1
ios7 ×1
keyboard ×1
swift ×1
target ×1