我有以下结构,具有一些属性:
struct Partner {
let id: Int
let nome: String
let icone: String
var isSelected : Bool
}
Run Code Online (Sandbox Code Playgroud)
所以我初始化一个简单的数组并在其中放入一些数据:
var parceiros : [Partner] = [
Partner(id: 1, nome: "Personal Profile", icone: "btPersonal",isSelected : true),
Partner(id: 2, nome: "Professional Profile", icone: "btProfessional", isSelected: false)
]
Run Code Online (Sandbox Code Playgroud)
但是当我想用高阶函数Map更改“isSelected”属性时,在swift 4中,数组根本不更新。这很奇怪,因为 var“_parceiro” 在返回循环中具有正确的值。但在函数执行之后,数组返回到原始值。
private func select(partner: Partner){
let _ = parceiros.map { (parceiro) -> Partner in
var _parceiro = parceiro
_parceiro.isSelected = parceiro.id == partner.id ? true : false
return _parceiro
}
}
Run Code Online (Sandbox Code Playgroud) 我想搜索包含很多单词的字符串,并检索与其中任何单词匹配的文档。我的索引方法如下:
Document document = new Document();
document.add(new TextField("termos", text, Field.Store.YES));
document.add(new TextField("docNumber",fileNumber,Field.Store.YES));
config = new IndexWriterConfig(analyzer);
Analyzer analyzer = CustomAnalyzer.builder()
.withTokenizer("standard")
.addTokenFilter("lowercase")
.addTokenFilter("stop")
.addTokenFilter("porterstem")
.addTokenFilter("capitalization")
.build();
config = IndexWriterConfig(analyzer);
writer = new IndexWriter(indexDirectory, config);
writer.addDocument(document);
writer.commit();
Run Code Online (Sandbox Code Playgroud)
这是我的搜索方法。我不想寻找特定的短语,而是其中的任何单词。搜索的分析器与索引的分析器相同。
Query query = new QueryBuilder(analyzer).createPhraseQuery("termos","THE_PHRASE");
String indexDir = rootProjectFolder + "/indexDir/";
IndexReader reader = DirectoryReader.open(indexDir);
IndexSearcher searcher = new IndexSearcher(reader);
TopScoreDocCollector collector = TopScoreDocCollector.create(1000,1000);
searcher.search(query,collector);
Run Code Online (Sandbox Code Playgroud)
我是 Lucene 的新手。有人可以帮助我吗?
我尝试使用 lineDashPattern 创建一个仅在角落有边框(qrCode 样式)的视图,但线之间的空间似乎与我定义的模式不匹配。这是我的游乐场:
override func loadView() {
let view = UIView()
view.backgroundColor = .white
let myView = UIView(frame: CGRect(x: 50, y: 50, width: 200, height: 200))
myView.backgroundColor = .black
let borderLayer = CAShapeLayer()
let d = (myView.bounds.width / 2) as NSNumber
borderLayer.strokeColor = UIColor.blue.cgColor
borderLayer.lineDashPattern = [d]
borderLayer.frame = myView.bounds
borderLayer.fillColor = nil
borderLayer.lineWidth = 10
borderLayer.strokeStart = 0.1
//borderLayer.lineDashPhase = -80
borderLayer.path = UIBezierPath(roundedRect: myView.bounds, byRoundingCorners: .allCorners, cornerRadii: CGSize(width: 30, height: 30)).cgPath
borderLayer.lineCap = CAShapeLayerLineCap.round
myView.layer.addSublayer(borderLayer)
view.addSubview(myView)
self.view …Run Code Online (Sandbox Code Playgroud)