SwiftUI沼でゆっくり浸る 郵便番号Detail用表示ネタの作成

こんにちは、川上です。
郵便番号のcsv.ZipのLoadから、解凍→CSVのArryができて、だいたいで、アプリ作成ネタが揃えてきたので、PostNumberToMapアプリ
をボチボチで大凡の骨川筋右衛門の形を作っていきました。
まずは、Detailの表示ArryのType形から。。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24  | // MARK: == 郵便番号、住所データの型 struct stPostNumber:Identifiable,Hashable {     let id:String = UUID().uuidString     var poststr:String  = ""        // 郵便番号     var tofukenn_h:String = ""      // 都道府県名 半角カタカナ     var sikuson_h:String  = ""      // 市区村名 半角カタカナ     var tyoiki_h:String  = ""       // 町域 半角カタカナ     var tofukenn_k:String = ""      // 都道府県名     var sikuson_k:String = ""       // 市区村名     var matison_k:String = ""       // 町村名     var addr_full:String {         get {             // "-"の追加             let pre_1 = String(poststr.prefix(3))             let pre_2 = String(poststr.suffix(4))             let s1  = pre_1 + "-" + pre_2             let dstr = s1 + "\n" + tofukenn_k + sikuson_k + matison_k             return dstr         }     }// == addr_full } // == stPostNumber  | 
で、ViewModelのPostNumberViewModel()にDetailの表示Arryの追加
1 2 3 4  | class PostNumberViewModel:ObservableObject {     @Published var postArry: [stPostNumber] = []    // 郵便番号、住所データの型 arry }  | 
先前にCSVのArryから、postArryへの流し込み
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29  |   // MARK: == 既存Zip Fileからのcsv dataの取得     func getPostNumberArry2CSVArry(_ csvstrarry :[String]) {         postArry.removeAll()         for (_,csv) in csvstrarry.enumerated() {             let csv2 = csv.substringSpaceTrim()             if !csv2.isEmpty {                 // == "\""を削除                 let dcsv = csv.replacingOccurrences(of: "\"", with: "")                 var spritArry:[String] = []                 // == ","でCSVから分割しデータ取得                 spritArry = dcsv.components(separatedBy: ",")                 var post_dt = stPostNumber()                 post_dt.poststr =  spritArry[eCSV_DT.ePOSTNUM.rawValue]      // 郵便番号                 post_dt.tofukenn_h = spritArry[eCSV_DT.eTFKEN_H.rawValue]   // 都道府県名 半角カタカナ                 post_dt.sikuson_h = spritArry[eCSV_DT.eCKTS_H.rawValue]    // 市区村名 半角カタカナ                 post_dt.tyoiki_h = spritArry[eCSV_DT.eMERA_H.rawValue]    // 町域 半角カタカナ                 post_dt.tofukenn_k = spritArry[eCSV_DT.eTFKEN_K.rawValue]   // 都道府県名                 post_dt.sikuson_k = spritArry[eCSV_DT.eCKTS_K.rawValue]    // 市区村名                 post_dt.matison_k = spritArry[eCSV_DT.eMERA_K.rawValue]    // 町村名                 postArry.append(post_dt)             } //  if !csv2.isEmpty         } // ==  for (idx,csv) in loadcsvarry.enumerated()         print("postArry.count =\(postArry.count)")     } // == getPostNumberArry  | 
でした。
これを、MasterからDetaileへと繋がす道へと続くでした。
こんな感じの
の動作です。
ではでは。

