我使用 Xcode 的“iOS App with Watchkit App”模板创建了一个应用程序,进入TARGETS并检查了Complications Configuration > Supported Families > Graphic Corner. 我ComplicationController.swift在扩展中打开并修改了getCurrentTimelineEntry():
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {
let cornerTemplate = CLKComplicationTemplateGraphicCornerStackText()
cornerTemplate.outerTextProvider = CLKSimpleTextProvider(text: "Outer")
cornerTemplate.innerTextProvider = CLKSimpleTextProvider(text: "Inner")
let entry = CLKComplicationTimelineEntry(date: Date(), complicationTemplate: cornerTemplate)
handler(entry)
}
Run Code Online (Sandbox Code Playgroud)
我还修改了 getLocalizableSampleTemplate() 以提供示例,但这也不起作用:
func getLocalizableSampleTemplate(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTemplate?) -> Void) {
let cornerTemplate = CLKComplicationTemplateGraphicCornerStackText()
cornerTemplate.outerTextProvider = CLKSimpleTextProvider(text: "Outer")
cornerTemplate.innerTextProvider = CLKSimpleTextProvider(text: …Run Code Online (Sandbox Code Playgroud) ios swift watchos apple-watch-complication watchos-simulator
我正在使用一个数组来填充DataProvider,我用它来填充列表组件.像这样:
var myDataProvider = new DataProvider(this.myArray);
this['list'].dataProvider = myDataProvider;
Run Code Online (Sandbox Code Playgroud)
当对数组进行更改时,我想告诉DataProvider更新,以便这些更改将反映在列表组件中.如果有一种方法可以告诉DataProvider监听数组中的更改并自行更新,那将是很好的,但我会想办法手动更新它.
我可以使用新的DataProvider替换DataProvider,但随后列表将丢失其选择.我想我可以浏览DataProvider并比较和修改每个条目以使其与数组匹配,但这似乎太麻烦了.有没有办法告诉DataProvider更新以匹配数组?
编辑:我正在寻找一种在Flash中执行此操作的方法,而不是Flex.
我知道正确使用的一次性密码密码中的密文显示绝对没有关于加密消息的数据.
这是否意味着无法区分使用一次性密码加密的消息与完全随机的噪声?或者是否有一些理论方法可以确定是否存在消息,即使您无法了解其中的任何信息?
random encryption cryptography information-hiding information-theory
当PHP看到一个未用引号括起来的字符串时,它首先检查它是否是常量.如果没有,它只是假设它是一个字符串并继续.所以,例如,如果我有
echo $foo[bar];
Run Code Online (Sandbox Code Playgroud)
如果有一个叫巴恒它使用的数组键,但如果不是那么它把酒吧作为裸字符串,所以它的行为就像
echo $foo["bar"];
Run Code Online (Sandbox Code Playgroud)
如果在将来某个日期添加具有相同名称的常量,则会导致各种问题.
我的问题是,是否存在使用裸字符串实际上有意义的情况?
我试图使我的类符合NSCoding,但遇到问题,因为它的一个属性是枚举,如下所示:
enum Direction {
case north
case south
}
Run Code Online (Sandbox Code Playgroud)
如果枚举是可编码的,我可以这样做:
class MyClass: NSObject, NSCoding {
var direction: Direction!
required init(coder aDecoder: NSCoder) {
direction = aDecoder.decodeObject(forKey: "direction") as! Direction
}
func encode(with aCoder: NSCoder) {
aCoder.encode(direction, forKey: "direction")
}
}
Run Code Online (Sandbox Code Playgroud)
但是枚举不可编码因此encode()会引发错误.
" 如何在swift中使用NSCoder编码枚举? " 的答案建议编码枚举rawValue,然后从rawValue另一端初始化它.但在这种情况下,Direction没有了rawValue!
它确实有一个hashValue,看起来很有希望.我可以hashValue毫无问题地编码它,并Int在另一端解码回来.但似乎没有办法从它初始化枚举hashValue,所以我不能把它变成一个Direction.
如何编码和解码无值枚举?