プログラミング言語Swift Part4at MAC
プログラミング言語Swift Part4 - 暇つぶし2ch397:名称未設定 (ワッチョイ cf11-l9FX)
23/02/04 18:22:29.13 JeVoMfYY0.net
ストレージも高速化してるからな

398:名称未設定 (スップ Sd5f-AMYP)
23/02/04 22:49:50.89 ROu5Xovad.net
初心者ですいません
テキストファイルのデータ全文を読み込んで表示したいです
以下のコードでは失敗している判定になってしまうのか読み込めず、catchの処理がされてしまいます
どこがダメなのでしょうか


# animals.txt
うさぎさん
かめさん
きりんさん
ぞうさん


let PATH = URL(string: "/Users/MYPC/Desktop/animals.txt")!

do {

var TXT_DATA = try String(contentsOf: PATH, encoding: .utf8)
print(TXT_DATA)
}
catch {
print("エラーが発生しました")
}

399:名称未設定 (ワッチョイ cf11-l9FX)
23/02/04 23:12:40.44 JeVoMfYY0.net
>>398
URL(string:

URL(fileURLWithPath:
に変える

400:名称未設定 (スップ Sd5f-AMYP)
23/02/04 23:29:24.51 ROu5Xovad.net
>>399
できました!
ありがとうございます!

401:名称未設定 (JP 0H03-jZ0L)
23/02/04 23:43:03.77 fjzZi0EPH.net
エラー時にメッセージも出ないのか

402:名称未設定 (ワッチョイW 0f73-iuhE)
23/02/10 23:50:11.35 3hKl1UXF0.net
SwiftってAppleの作ったコンパイル型言語でなんとなくカッコ良さそう、速そうだから使ってみたけど
文の書き方が悪いのか知らんけどスクレイピング程度ならcurlやgrep組み合わせたシェルスクリプトの方が速い…

403:名称未設定 (ワッチョイW cbc0-t27W)
23/02/24 07:57:19.60 R+5TCwsp0.net
その結果をスマホなんかで利用するからSwiftで書くんやないの?なにがしたいんだ

404:名称未設定 (ワッチョイW 65b5-2pOO)
23/02/24 12:05:43.55 a585lW2i0.net
iOSアプリ作るために覚えるだけであって、それ以上でもそれ以下でもないと思う。
WEBサービス作らならPHPなりなんなりそれ用に覚えるだけ。

405:名称未設定 (ワッチョイ c56e-1vwO)
23/04/10 12:50:49.53 oh/wg/lt0.net
突然の質問で申し訳ないです。
title,caption,valueを持つクラスインスタンスの配列を作成したいと思っています。
ただし、Allay要素内のvalueはIntだったりStringだったり別個のインスタンスだったりします。
以下のようなコーディングをしてみたのですが、Root<Int>をRoot<Any>へ変換出来ない旨のコンパイルエラーが発生します。
対応策としてプロトコルにassociatedtypeを設定してRootで準拠させようとしてもRootの時点で型を決めないといけないようで
同様なエラーとなってしまいました。
ElementA(〜) as! Root<Any> は always fails ですし
var elementArray: [Root<some Any>] も同様の結果でした。
何か良い方法はないものでしょうか?

import Foundation

class Root<T: Any>: NSObject {
var title: String
var caption: String
var value: T
init(title: String, caption: String, value: T) {
self.title = title
self.caption = caption
self.value = value
}
}
class ElementA: Root<Int> {}
class ElementB: Root<String> {}
class ElementC: Root<NSObject> {}

var elementArray: [Root<Any>]
elementArray.append(ElementA(title: "A", caption: "CapA", value: 10))
elementArray.append(ElementB(title: "B", caption: "CapB", value: "ABC"))
elementArray.append(ElementC(title: "C", caption: "CapC", value: NSObject()))

406:名称未設定 (ワッチョイW c56e-OWr6)
23/04/10 13:02:33.94 KAEhlb8J0.net
AnyObjectにするとか?

407:名称未設定 (ワッチョイ c56e-1vwO)
23/04/10 13:10:18.54 oh/wg/lt0.net
404です。
以下訂正
誤:var elementArray: [Root<Any>]
正:var elementArray: [Root<Any>] = []

解決策の一つとして var elementArray: [Any] = [] とすればelementArray.append(〜)のエラーは解決しますが、
最後に以下を実行すると"Nothing"が3つ表示されます。
elementArray.forEach({print(($0 as? Root<Any>)?.value ?? "Nothing")})
当然と言えば当然なんですが、なんとかインチキでできないものかと・・・。

408:名称未設定 (ワッチョイW 91a6-jv9C)
23/04/10 13:14:51.34 VlLpsHnQ0.net
変数を先に定義してもいいかもね。
あと一つのarrayに複数の変数入れるならinitとか使わんほうがいいとか
struct datafile {
let name: String
let size: Int
let time: Double
}

409:名称未設定 (ワッチョイ c56e-1vwO)
23/04/12 09:19:15.10 ooV5Ncg30.net
404です。
遅くなってすみません。
頂いた内容などを参考に結果として以下のような形になりました。
ジェネリクスクラスを辞めてvalueをAnyとすることでRootを要素とするArrayを作ることができました。
ありがとうございます。
ただ、ElementAのvalueはIntであることが(人間は)判っているのに value as! Int で必ずキャストしないといけないのが難点ですね。

すみません、改行が多いと怒られませいた。次レスへ続きます。

410:名称未設定 (ワッチョイ c56e-1vwO)
23/04/12 09:21:02.27 ooV5Ncg30.net
改行を減らすために少し見辛くてすみません。
import Foundation

class Root: NSObject {
var title: String
var caption: String
var value: Any
init(title: String, caption: String, value: Any) {
self.title = title
self.caption = caption
self.value = value
}
}
class ElementA: Root {init(title: String, caption: String, value: Int) {super.init(title: title, caption: caption, value: value)}}
class ElementB: Root {init(title: String, caption: String, value: String) {super.init(title: title, caption: caption, value: value)}}
class ElementC: Root {init(title: String, caption: String, value: NSObject) {super.init(title: title, caption: caption, value: value)}}

var elementArray: [Root] = []
elementArray.append(ElementA(title: "A", caption: "CapA", value: 10))
elementArray.append(ElementB(title: "B", caption: "CapB", value: "ABC"))
elementArray.append(ElementC(title: "C", caption: "CapC", value: NSObject()))

elementArray.forEach({print($0.value)})

411:名称未設定
24/01/30 14:33:22.81 WmNtoPHn0.net
結局、>>208は無理ってこと?

412:名称未設定
24/01/30 22:07:59.02 LbAI0VQV0.net
>>411

413:名称未設定
24/02/05 23:44:19.37 8ig6Khva0.net
Appleがシステム構成のためのプログラミング言語「Pkl」をオープンソースでリリース
URLリンク(gigazine.net)

414:名称未設定
24/08/16 14:03:32.84 sro+h3w00.net
iPadのPlaygroundsでアプリが作れるそうですが
最新版はMacのPlaygroundsで
MacのアプリがBuildできるんでしょうか?

415:名称未設定
24/08/23 12:24:37.62 7qgXkpV90.net
どっかのスラム街かと思ってる
ゆうたろうがどこから辿るのかのワンパターン

416:名称未設定
24/08/23 12:57:44.38 uRp4R0p30.net
それやりたい
SMならあるんじゃ
坊っちゃんスクリプトに次ぐ3大RPG!」
社会もロクに知らない層
URLリンク(i.imgur.com)

417:名称未設定
24/08/23 14:21:54.69 Sm3TBLbC0.net
運転手に入れるといいぞ
URLリンク(i.imgur.com)


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch