小编Kau*_*anu的帖子

如果App终止,则不会调用UNUserNotificationCenter didRecieve Response

如果应用程序未处于活动状态(甚至不在后台或已终止),则在3D Touch之后单击"通知中的操作按钮聊天"时不会调用UNUserNotificationCenter功能.我在Xcode中使用"附加到名称处理"来在应用程序终止时调试应用程序.这是代码:

import UIKit
import Mixpanel
import UserNotifications

@UIApplicationMain

class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        //setup mixpanel

        self.handlePushNotificationWithUserInfo(launchOptions: launchOptions)

        //ask for push notification perms
        return true
    }
Run Code Online (Sandbox Code Playgroud)

当通知弹出窗口(从MixPanel发送)时,首先调用此函数,

致电1:

    func handlePushNotificationWithUserInfo(launchOptions: [NSObject: AnyObject]?) {
        //Handle PushNotification when app is opened
    }
Run Code Online (Sandbox Code Playgroud)

然后它就在这里,

电话2:

    //register for notification
    func application(_ application: UIApplication, didRegister notificationSettings: UIUserNotificationSettings) {

        if #available(iOS 10.0, *) {
            let center = UNUserNotificationCenter.current() …
Run Code Online (Sandbox Code Playgroud)

apple-push-notifications swift3 ios10 xcode8 xcode8-beta3

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

具有修改的树的动态规划

最近我在树上读到了一个问题但是我发现很难解决这个问题.这是问题:

n个城市(2到10 ^ 5)(n-1)双向道路的国家,这样可以在任何一对城市之间旅行.我们有1辆可以在城市之间旅行的魔术卡车但是在相邻城市之间旅行需要1个单位时间(如果已加载)0单位时间(如果没有加载),并且可以容纳最多1个单位的产品.

现在,您可以在任何城市拥有一个客户,该客户只需要2个单位的产品,并且不能等待超过2个单位的时间.

现在的问题是,我们必须尽量减少具有给定限制的存储总数:

  1. 一个城市不能有多个存储空间.
  2. 存储只能存储1个单位的产品.

在国家/地区分配存储空间,以便您可以按时填写至少第一个订单.鉴于订单可以放在任何城市.

时间限制:1秒

我尝试过的:

  1. 我能想到的最糟糕的方法是蛮力.尝试在每个城市放置存储(2 ^ n种可能性)并检查是否可以在邻近城市的帮助下完成每个城市秩序.但是时间复杂度将是(n*2 ^ n).所以根本不会工作.

  2. 我想的第二种方法是以某种方式在树上使用DP.而且我也不确定这是否是最优的.从上面的问题我可以确保叶子应该有1个存储肯定. 而且我正在考虑DP,从root开始并检查孩子是否可以帮助完成它的顺序并相应地为该城市分配存储空间.但问题在于,孩子们也可以从父母那里完成订单,所以它正在制作循环循环.所以,它也没有帮助我.

  3. 我最后的方法是考虑在答案本身上应用二进制搜索.由于答案可以介于(1,n)之间,因此可以在nLog(n)顺序中找到答案.但问题是,我无法想到在具有给定存储数量的城市中分配存储的最佳方式.

那么,多数民众赞成......我努力但却无法解决这个问题.任何帮助,将不胜感激.:)

注意:我不知道为什么他们这样复杂的问题陈述如此复杂.他们可以用更简单的方式轻松解释问题.结果我再也找不到网络上的这个问题了.我猜这是代码的某个地方.

algorithm tree dynamic-programming depth-first-search

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

UIView 中神秘的 UIColor 行为以及 Swift 中的一般行为

最近我遇到了一个关于 Swift 中 UIColor 的有趣(可能是天真的)问题。

import UIKit

let view = UIView(frame: CGRect(x: 0,
                                y: 0,
                                width: 50,
                                height: 50))
view.backgroundColor = .systemBlue

let a = UIColor.systemBlue
switch a {
case .red:
    print("red")
case .systemBlue:
    print("blue")
default:
    print("unknown")
}
Run Code Online (Sandbox Code Playgroud)

以下代码在操场上打印“蓝色”非常好,但发生了变化

let a = UIColor.systemBlue
to
let a = view.backgroundColor ?? .red
Run Code Online (Sandbox Code Playgroud)

在操场上打印“未知”,有人可以帮助这里发生了什么吗?我无法解决它。它是否在某些时候与值类型或引用类型相关?请帮忙!!

uikit uiview uicolor swift swift-playground

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

防止UIView在Swift的SuperView外部溢出

假设有一个UIView(0,0,100,100),它具有两个SubView,一个是(-5,-5,10,10),第二个是(0,95,10,10)。我想让第一个SubView从superView溢出,而不是secondOne。UIView中是否可以设置任何属性,以防止UIView的SuperView溢出?或实现此目标的最佳方法是什么?

注意:此处的坐标为(x,y,Width,Height)的形式

更新:由于有些人将这个问题标记为不清楚,所以让我添加一些要点:

  1. 我熟悉clipToBoundsUIView的属性,但是这会让所有subViews都被裁剪,但是我的问题是相反的。
  2. 我只是想知道UIView中是否有任何属性,可以防止UIView的superView溢出。
  3. 为了说明相同的问题,我仅举了一个示例,其中将clipToBounds设置为superView将无法达到我们的目的,因为一个subView需要从其父View溢出。

如果尚不清楚,请在评论中让我知道。

calayer ios cliptobounds swift

-1
推荐指数
1
解决办法
576
查看次数