Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Swift remplir une combobox avec un script CLI ?

2 réponses
Avatar
Une Bévue
J'ai une toute petite appli Swift :
<http://www.cjoint.com/doc/15_06/EFrjLQab33X_RecipeType.png>

pour l'instant, la ComboBox est remplie par une Array de Strings :
recipeTypes = ["Dessert", "Entrée", "Plat"]
recipeTypeChooser.removeAllItems()
recipeTypeChooser.addItemsWithTitles(recipeTypes)
recipeTypeChooser.selectItemAtIndex(1)

cette liste correspond à la liste des répertoires sous
'~/Sites/Recettes/pages' excepté quelques répertoires que je
spécifierait par une autre Array :

recipeTypesNotAllowed = ["Liens-Externes", ...]

comment alimenter ma liste "recipeTypes" par les répertoires sous
'~/Sites/Recettes/pages' qui s'obtiennent, en CLI, simplement par :
$ ls ~/Sites/Recettes/page

ensuite j'aurai une autre version de cette toute petite appli qui
devrait, pour remplir une combobox, aller chercher une collection dans
une base MongoDB.

y a t'il une interface Swift/MongoDB (je vais googleliser aussi bien sûr).

2 réponses

Avatar
Une Bévue
Le 17/06/2015 11:45, Une Bévue a écrit :
comment alimenter ma liste "recipeTypes" par les répertoires sous
'~/Sites/Recettes/pages' qui s'obtiennent, en CLI, simplement par :
$ ls ~/Sites/Recettes/page




une première partie :
#!/usr/bin/env xcrun swift

import Foundation

let task = NSTask()
task.launchPath = "/bin/ls"
task.arguments = ["/Users/yt/Sites/Recettes/pages/"]

let pipe = NSPipe()
task.standardOutput = pipe
task.launch()

let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output: String = NSString(data: data, encoding:
NSUTF8StringEncoding) as! String

print(output)

qui me donne bien la sortie de ls mais en une seule string, reste à
convertir en une array de strings.
Avatar
Une Bévue
Le 17/06/2015 11:59, Une Bévue a écrit :
qui me donne bien la sortie de ls mais en une seule string, reste à
convertir en une array de strings.


var recipeTypesAll = split(output) {$0 == "n"}