小编Jor*_*oto的帖子

我可以在我的应用上禁用主页按钮吗?(全屏浏览器信息亭模式)

我必须在旅游展上放置很多iPad来展示我们的网站,我们不希望人们可以使用这些iPad来玩/进入Facebook /等.为此,我正在搜索一个将iPad置于自助服务终端模式以显示我们的网络全屏的应用程序,但如果用户可以按主页按钮转到跳板那就太荒谬了......

为此,我开始开发一个没有地址栏的全屏浏览器,只显示以编程方式选择的URL,我想在我们的iPad上部署这个应用程序(我们有一个开发者帐户),但我们遇到了同样的问题:如果用户按下主页按钮,他可以选择Safari并进入任何网站.

总之,我们需要禁用主页按钮来保持用户在我们的网站上(我知道如果按住主页按钮+电源按钮,iPad重新启动,但电源按钮将在支架上物理禁用),我也知道这个应用程序将不会被Apple批准,但正如我之前所说的,这个应用程序只适用于展台.

谢谢.

四年后,我找到了回应.

iphone objective-c ipad home-button

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

NSManagedObject子类,在swift中使用可用的init

我有一个NSManagedObject子类,需要在正确返回之前完成它(它的所有字段都是非选项),所以当我执行init时,首先我使用一个guard来确保数据(来自JSON)是正确的如下:

public init(context: NSManagedObjectContext, dictionary: [String: AnyObject]) throws {
    guard
    let modified_on = date(dictionary["modified_on"] as? String),
    let start_on = date(dictionary["start_on"] as? String),
    let end_on = date(dictionary["end_on"] as? String),
    let ticket_name = dictionary["ticket_name"] as? String
    else {
        throw ErrorParseModel.ErrorParsing
    }
...
...
Run Code Online (Sandbox Code Playgroud)

问题是编译器返回一个错误,Super.init isn't called before returning from initializer因为这个init方法可能抛出异常而不调用super.init之前.

我的家伙是关于如何进行的:1.我之前是否应该打电话给super.init并创建一个"虚拟对象"而不是后卫?在这种情况下,我应该从上下文中删除此对象之前抛出异常?2.在此警卫之前我可以做的另一个测试是确保entityName正确如下:

guard let entity = NSEntityDescription.entityForName(Ticket.entityName, inManagedObjectContext: context) else {
   return
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我无法在上下文中创建对象,因为我没有实体,所以我不可能(我认为)在一个上下文中创建一个nil-entity对象.

有关如何进行的任何建议?

谢谢!

core-data nsmanagedobject ios swift

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