Tag: ios8

iOS 8扩展相关性问题。 将一个项目文件导入到扩展视图控制器

我正在开发iOS 8扩展。 我阅读了许多手册,所有这些手册都只是展示了如何简单地为您的应用程序添加扩展,似乎就够了。 但是这里有很多陷阱: 添加扩展名后,您将需要导入一些类,以添加新的扩展名目标时创build的视图控制器。 在这里你需要大量使用它们,如果你有巨大的项目,这不是一个简单的任务。 解决scheme可以select扩展目标,然后在构build阶段 – >编译源按加号button,并使用热键CMD + A将所有.m文件添加到您的目标。 添加所有文件后,你可以看到一些方法不会工作,你可以看到这个错误: 'sharedApplication' is unavailable: not available on iOS (App Extension)所以解决scheme可以是一个macros,检查ifndef Extension然后我们可以调用sharedApplication程序代码。 #import <Foundation/Foundation.h> vs #import <UIKit/UIKit.h> 。 所以我还没有解决这个问题,但是当我用UIKitreplaceFoundation它适用于我和所有相关的问题消失。 的CocoaPods。 我们所有人都使用CocoaPods,所以如果你的扩展需要使用你的项目代码的一部分,并且代码使用CocoaPods库,那么你需要添加link_with 'ProjectTarged', 'ExtensionTarget'到Pod文件并再次进行pod install来绑定你的库与新的扩展目标。 所以这是我所面对的一个要点。 也许有人可以build议如何解决这个问题,正如我所说,我只是将一个需要的文件导入到扩展视图控制器。 导入的文件包含一些库,如AFNetworking , RestKit和其他来自主项目的嵌套类。 我需要这个类来调用几个方法,将数据从扩展传递到我的后端服务器。 所以一个文件,但很多问题。

在Objective-Cunit testing中不能使用Swift类

我遵循这个配方,以便在现有的Objective-C项目MyProject使用Swift类。 这工作正常。 但是,我仍然无法在同一个项目的unit testing中使用相同的Swift类。 编译器标志着我的Objective-Cunit testing所说的#import "MyProjectTests-Swift.h" file not found 。 如果尝试将testing目标的Product Module Name从其默认MyProjectTests更改为MyProject如对此(未答复)问题的评论中所build议的那样。 然而,编译器现在标志着我的Objective-Cunit testing所说的#import "MyProject-Swift.h" file not found 。 那么如何将Swift类整合到用Objective-C编写的(XCTest)unit testing中呢? 苹果是否提供任何配方?

openURL在共享扩展中不起作用

尝试使用[self.extensionContext openURL:… completionHandler:…]; 在iOS 8共享扩展中打开包含的应用程序永远不会打开应用程序,并始终调用成功=否的完成处理程序。 这是与行动扩展相同的问题,但我认为共享扩展能够打开包含应用程序比行动扩展更合理。 共享扩展的意义在于上传一个潜在的大量数据,唯一不用打开应用程序的方法是通过NSURLSession ,它只能进行HTTP(S)上传。 但是应用程序可能希望通过与HTTP(S)上传不同的机制来共享内容。 苹果文档没有声明openURL…不能用于任何特定types的扩展。 很难知道这是一个错误还是有意的行为。 没有关于这方面的官方信息。

如何用IBOutlet子类化一个variables?

所有我的具体类的后代都有一个UILabel实例variables。 所以在我的父类我有var label: UILabel 。 我也想在sublclass中,但作为IBOutlet 。 我该怎么做呢? 我添加了相同名称的IBOutlet ,并对两个variables声明都添加了弱点。 但是我收到一个关于“无法用存储的属性覆盖”的错误。 我应该怎么做? 是否有可能不需要实例化超类的版本,因为我只是想要它的子类?

使用RubyMotionselectiOS模拟器设备types

自iOS 8发布以来,模拟器的默认设备types变成了iPhone 6.即使我使用Hardware> Device菜单手动更改设备types,在下次启动(使用rake simulator )时,模拟器将恢复为iPhone 6。 我不知道是否有任何耙选项,或其他设置强制设备types。 PS。 我知道有办法强制一个非视网膜的iPhone和一种方式来启动iPad模拟器,而不是iPhone的,但我有兴趣在5/6/6 +之间进行select。 谢谢

如何防止更改相机权限后重置iOS应用程序?

目前,当我在“设置”中更改我的应用程序的相机权限时,回到我的应用程序,应用程序将强制刷新,我将在应用程序中失去我的位置。 我完全按照这些步骤 : 打开使用相机权限的应用程序。 导航到应用程序中的某个屏幕(以便稍后可以看到刷新) 转到设置应用程序,导航到应用程序的设置,并切换相机的权限 双击回家,回到应用程序。 几秒钟后,它会刷新,带你回到第一个屏幕 注意:我正在使用运行iOS 8.4的iPhone 6 我已经注意到所有具有相机权限的应用程序的这种行为。 我的问题是: 有什么办法来防止刷新/重新启动(在恢复)更改相机权限后的应用程序? 例如,当您切换位置服务时,似乎不会发生这种情况,而从可用性的angular度来看,这太可怕了。 用户场景 :如果用户深入浏览您的应用程序,则需要更改摄像头权限(因为他们上次没有意外地点击),他们将在返回时被迫返回到该屏幕。 这对于试图向您推销商品的应用程序尤其有害,或者注册您的新帐户。 他们可能会尝试引入一项新function,您可以使用相机拍摄个人资料照片或扫描信用卡。 由于用户不知道此function,他们可能以前拒绝摄像头访问,但现在要启用它。 试图重新启用后,他们回到您的应用程序,发现他们必须再花5分钟以上的时间注册/购买! 之后,即使我可能会放弃。

故事板中的Xcode 6 UIVisualEffectView

我在Xcode 6中查看UIVisualEffectView的对象库,在Storyboard中添加模糊。 我知道如何以编程方式执行此操作,但是我无法在故事板中find这种方法。 这是不是在目前的testing版,或有没有办法做到这一点不那么简单?

UITableViewCell在iOS8中不能剪裁到编辑模式的边界(适用于iOS7.1)

我设置的UITableViewCell的高度,以便它将剪辑,而不是行的所有内容是可见的。 这在iOS7中工作正常“不编辑”模式和“编辑”模式。 在iOS8中,它只能在“不编辑”模式下工作。 在单击左侧的红色删除button后,将显示单元格的全部内容, 以便您看到右侧的删除button。 我一直在设置cell.clipsToBounds = YES并认为这是我所需要做的。 编辑 :我也试过cell.contentView.clipsToBounds = YES但是这没有奏效。 iOS7 :(这是我想要的) iOS8上:

Xcode 6 / iOS 8位置模拟不起作用

我刚刚更新到Xcode 6 / iOS 8 SDK和模拟器中的位置服务模拟开始不起作用。 我更新之前还好(我目前无法在真实设备上testing)。 现在,当我select一个位置进行模拟时,没有任何反应。 委托的-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations方法不被调用。 我已经重新启动Xcode,清理生成文件夹,没有任何改变。 为什么会这样呢?

如何debuggingWKWebView中的JavaScript代码

我在WKWebView中运行webapp时遇到了一些麻烦(特别是:某些button没有响应)。 我用这个教程作为指导,并成功地使webview显示我的web应用程序。 所以现在我想debugging的JavaScript代码。 我知道webapp的作品,因为我已经在android webview以及无数的浏览器(包括我使用的iPad模拟器上的safari)尝试过。 一些快速search后,我发现如何debugging使用Safari的UIWebView内的JavaScript 。 可悲的是,这似乎不适用于新的WKWebView。 当我导航到Develop->iPad Simulator我被告知有'没有Inspectable应用程序'。 我已经尝试了与UIWebView的简单的应用程序,通过Safari浏览器debugging完全相同的事情在那里完美的作品。 有没有一种方法来debuggingWKWebView内的JavaScript代码? 为了重现我的问题(使用swift),在xCode 6中启动一个新的单一屏幕项目,在ViewController.swift文件中复制以下提供的代码( kinderas提供),并将该sockets拖到View Controller下的View Controller Main.storyboard文件。 如果发生混淆,请参阅上面链接的教程。 import UIKit import WebKit class ViewController: UIViewController { @IBOutlet var containerView : UIView! = nil var webView: WKWebView? override func loadView() { super.loadView() self.webView = WKWebView() self.view = self.webView! } override func viewDidLoad() { super.viewDidLoad() var […]