小编ios*_*dev的帖子

更改数组属性时,Swift 地图不起作用

我有以下结构,具有一些属性:

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)

arrays ios swift

4
推荐指数
1
解决办法
4602
查看次数

Lucene 搜索匹配短语中的任何单词

我想搜索包含很多单词的字符串,并检索与其中任何单词匹配的文档。我的索引方法如下:

 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 的新手。有人可以帮助我吗?

java lucene solr search-engine

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

仅在 UIBezierPath() 的角落有边框,lineDashPattern 中的空间错误

我尝试使用 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)

uiview cashapelayer ios swift

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

标签 统计

ios ×2

swift ×2

arrays ×1

cashapelayer ×1

java ×1

lucene ×1

search-engine ×1

solr ×1

uiview ×1