如果应用程序未处于活动状态(甚至不在后台或已终止),则在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) 最近我在树上读到了一个问题但是我发现很难解决这个问题.这是问题:
有n个城市(2到10 ^ 5)和(n-1)双向道路的国家,这样可以在任何一对城市之间旅行.我们有1辆可以在城市之间旅行的魔术卡车但是在相邻城市之间旅行需要1个单位时间(如果已加载)和0单位时间(如果没有加载),并且可以容纳最多1个单位的产品.
现在,您可以在任何城市拥有一个客户,该客户只需要2个单位的产品,并且不能等待超过2个单位的时间.
现在的问题是,我们必须尽量减少具有给定限制的存储总数:
在国家/地区分配存储空间,以便您可以按时填写至少第一个订单.鉴于订单可以放在任何城市.
时间限制:1秒
我尝试过的:
我能想到的最糟糕的方法是蛮力.尝试在每个城市放置存储(2 ^ n种可能性)并检查是否可以在邻近城市的帮助下完成每个城市秩序.但是时间复杂度将是(n*2 ^ n).所以根本不会工作.
我想的第二种方法是以某种方式在树上使用DP.而且我也不确定这是否是最优的.从上面的问题我可以确保叶子应该有1个存储肯定. 而且我正在考虑DP,从root开始并检查孩子是否可以帮助完成它的顺序并相应地为该城市分配存储空间.但问题在于,孩子们也可以从父母那里完成订单,所以它正在制作循环循环.所以,它也没有帮助我.
我最后的方法是考虑在答案本身上应用二进制搜索.由于答案可以介于(1,n)之间,因此可以在nLog(n)顺序中找到答案.但问题是,我无法想到在具有给定存储数量的城市中分配存储的最佳方式.
那么,多数民众赞成......我努力但却无法解决这个问题.任何帮助,将不胜感激.:)
注意:我不知道为什么他们这样复杂的问题陈述如此复杂.他们可以用更简单的方式轻松解释问题.结果我再也找不到网络上的这个问题了.我猜这是代码的某个地方.
最近我遇到了一个关于 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)
在操场上打印“未知”,有人可以帮助这里发生了什么吗?我无法解决它。它是否在某些时候与值类型或引用类型相关?请帮忙!!
假设有一个UIView(0,0,100,100),它具有两个SubView,一个是(-5,-5,10,10),第二个是(0,95,10,10)。我想让第一个SubView从superView溢出,而不是secondOne。UIView中是否可以设置任何属性,以防止UIView的SuperView溢出?或实现此目标的最佳方法是什么?
注意:此处的坐标为(x,y,Width,Height)的形式
更新:由于有些人将这个问题标记为不清楚,所以让我添加一些要点:
clipToBounds
UIView的属性,但是这会让所有subViews都被裁剪,但是我的问题是相反的。如果尚不清楚,请在评论中让我知道。