我试图创建MVVM模板来创建文件(不是项目)。
我想在创建文件时添加组(黄色文件夹),但不能。创建它时,它会创建一个文件夹(蓝色文件夹)。
我该如何实现?
我尝试使用Node,Definitions但它仍然显示蓝色文件夹。
我的MVVM.xctemplate层次结构是这样的:
-(文件夹)FILEBASENAME FILEBASENAME
---- ___ FILEBASENAME ___ ViewController.swift
--TemplateIcon.png
--TemplateIcon@2x.png
--TemplateInfo.plist
这是我的TemplateInfo.plist档案
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Kind</key>
<string>Xcode.IDEFoundation.TextSubstitutionFileTemplateKind</string>
<key>Description</key>
<string>An empty MVVM Swift file.</string>
<key>Summary</key>
<string>An empty Swift MVVM file</string>
<key>AllowedTypes</key>
<array>
<string>public.swift-source</string>
</array>
<key>DefaultCompletionName</key>
<string>File</string>
<key>MainTemplateFile</key>
<string>___FILEBASENAME___.swift</string>
<key>Platforms</key>
<array>
<string>com.apple.platform.iphoneos</string>
</array>
<key>Options</key>
<array>
<dict>
<key>Identifier</key>
<string>productName</string>
<key>Required</key>
<true/>
<key>Name</key>
<string>Name:</string>
<key>Description</key>
<string>The name of the Navigator, ViewController and ViewModel …Run Code Online (Sandbox Code Playgroud) 我有这样的后端响应字符串:
{
"status": "success",
"data": "{\"name\":\"asd\",\"address\":\"Street 1st\"}"
}
Run Code Online (Sandbox Code Playgroud)
我认为问题是因为数据字符串中的双引号(“)。当我删除双引号时,序列化成功。但是响应来自后端,因此我必须处理它。
任何人都可以解决这个问题吗?
谢谢。
这是游乐场代码。
import Foundation
var jsonStr = """
{
"status": "success",
"data": "{\"name\":\"asd\",\"address\":\"Street 1st\"}"
}
"""
let data = jsonStr.data(using: .utf8)
if let d = data {
do {
let o = try JSONSerialization.jsonObject(with: d)
print(o)
} catch let e {
print(e)
}
} else {
print("DATA conversion ERROR")
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 RxSwift 进行反应式编程,并想测试我的视图模型。我有这样的去抖动:
在视图模型中:
let personNameMessage = input.personName.debounce(0.5).map { name -> String in
return "Person Name = \(name)"
}
return Driver.just(personNameMessage)
Run Code Online (Sandbox Code Playgroud)
然后在测试用例中:
let scheduler = TestScheduler(initialClock: 0)
let personNameInput = scheduler.createHotObservable([next(100, "John Doe")])
let personObserver = scheduler.createObserver(String.self)
output.personNameWelcome
.asObservable()
.subscribe(personObserver)
.disposed(disposeBag)
scheduler.start()
print(observer.events)
Run Code Online (Sandbox Code Playgroud)
但它没有发出该事件。我尝试添加scheduler.advanceBy(550)后scheduler.start()但结果是一样的。
请帮忙。
谢谢。