2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

プログラミング言語Swift Part4

1 :名称未設定(8級) (ワッチョイ 33a8-bj6g):2017/01/19(木) 03:18:15.58 ID:YIGkvQUZ0.net

iBooks:
The Swift Programming Language
https://itunes.apple.com/jp/book/swift-programming-language/id881256329?mt=11
Using Swift with Cocoa and Objective-C
https://itunes.apple.com/jp/book/using-swift-cocoa-objective/id888894773?mt=11

ドキュメント:
The Swift Programming Language
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/
Using Swift with Cocoa and Objective-C
https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/
Swift Standard Library
https://developer.apple.com/reference/swift


http://swiftdoc.org/
https://swift.org/
https://developer.apple.com/swift/blog/

関連スレ
http://echo.2ch.net/test/read.cgi/tech/1476758084/l50

過去スレ
http://potato.2ch.net/test/read.cgi/mac/1408762479/
http://anago.2ch.net/test/read.cgi/mac/1401736921/
http://anago.2ch.net/mac/kako/1401/14017/1401736249.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

364 :名称未設定 (ワッチョイW 81b1-6UhS):2020/08/18(火) 10:10:42 ID:s2O85+fq0.net
Swift でもWebAssembly を吐き出せるようになるみたいだね。

365 :名称未設定 :2020/10/11(日) 15:50:10.33 ID:RKARoncNp.net
>>364 かなり進化してる。 正式リリースではないが使用に耐えるところまで来ている。
DOMkit でブラウザのDOMに直接アクセスできる。

https://swiftwasm.org/
ブログから読むと良い。

366 :名称未設定 :2020/11/19(木) 21:53:27.08 ID:pud/oXsad.net
Dateformatクラスでdateformatプロパティにyyyy-MMddと指定したのに
date(from:"2020/11/11")がパースされてしまうのですが、厳密にするにはどうしたらよいでしょうか
isLenientの値を変えても変化ありませんでした

367 :名称未設定 :2020/11/26(木) 06:58:49.41 ID:HIulkTTbM.net
引数の型がStringではないような?

368 :名称未設定 :2020/12/15(火) 04:25:45.87 ID:eAzN5TpN0.net
>>359
swift4てだとどう書くの?

369 :名称未設定 :2020/12/18(金) 19:35:38.13 ID:tveJ5h140.net
>>365
JS以外のいかなる言語もDOMに"直接"はアクセスできない。
WebAssemblyもそう。要望は来てるみたいだが計画はない。
なのでJS介しての呼び出し。
意識しなくてもよいかもしれないが"直接"ではなく間接。
キッチリオーバーヘッド出るから。
Microsoftもblazorで優良誤認誘ってるけどなんでみんなここ嘘つくんだ…
WebAssemblyの仕様調べれば分かるのに…

370 :名称未設定 :2020/12/25(金) 17:37:13.27 ID:sQVKT6chpXMAS.net
>>369 内部でどう言う作りになっていようが、簡単にアクセスできることが善。

https://i.imgur.com/ddHKyMQ.jpg
https://i.imgur.com/R4dCRLf.jpg

371 :名称未設定 :2020/12/25(金) 21:41:33.40 ID:CrbxO0q80XMAS.net
>DOMに直接アクセスできる。

>意識しなくてよいかも知れないが"直接"ではなく関節。キッチリオーバヘッド出るから。

>内部でどう言う作りになっていようが、簡単にアクセスできることが善。

>>370
こいつ全く話噛み合ってねえな。
>>369
ところで昔のWebKitでDOMを扱えたけどあれもJS経由なの?
https://developer.apple.com/documentation/webkit/deprecated_symbols/document_object_models_api_legacy

372 :名称未設定 :2021/07/05(月) 10:39:33.78 ID:aRAIgmvi0.net
以下はコードの断片に現れる[apiService]は何を意味してるのでしょうか?

ちなみにapiServiceはlet変数で、queryをパラメータとするclosureで使われるapiSeviceの参照方法(weak, unowned or strong)を指定してる様に見えるのですけど...


let responseSubscriber = onCommitSubject
.flatMap { [apiService] query in
apiService.request(with: SearchRepositoryRequest(query: query))
以下略

出典
https://github.com/SatoTakeshiX/SwiftUICatalog
https://github.com/SatoTakeshiX/SwiftUICatalog/blob/master/GitHubApiClientSample/GitHubApiClientSample/Screen/Home/HomeViewModel.swift

373 :名称未設定 :2021/07/05(月) 10:45:21.38 ID:aRAIgmvi0.net
>>372
ウゥーん、どうやら[apiService]の部分は
Capture Listと呼ばれる言語要素らしい。

374 :名称未設定 :2021/07/05(月) 10:50:59.00 ID:aRAIgmvi0.net
>>373
強参照: [apiService]
弱参照 implicitly unwrapped: [unowned apiService]
弱参照: [weak apiService]

ref.
https://yamatooo.blog/entry/2021/03/26/083000

375 :名称未設定 :2021/07/05(月) 11:16:00.55 ID:aRAIgmvi0.net
>>374
see in Language Guide.
Automatic Reference Counting, Resolving Strong Reference Cycles for Closures, Defining a Capture List.

376 :名称未設定 :2021/07/05(月) 12:17:21.25 ID:aRAIgmvi0.net
7回読み勉強法の極意
1. 何度も読んでると、何が解っていて、不理解なのがどこなのか見えてくる。

flatMapってのはclosureの中でPublisherを動かしてもDownstreamを一本にしてくれるOperatorって事らしい。

Rubyのflattenが2重配列を解いてくれるのと同じ!
e.g.
[0, [1, 2]].flatten // => [0, 1, 2]

377 :名称未設定 :2021/08/11(水) 23:03:07.16 ID:p+aUDYOna.net
swiftUIで画像を移動する方法がわからない
位置座標の数値に繰り返し加算して動かす方法ってないの?
なんか他の言語と感覚違ってて
慣れなんだろうけど

378 :名称未設定 :2021/08/21(土) 03:05:10.16 ID:BrmdSShNd.net
>>377
offsetやpositionでできるよ。
座標に@state変数をいれて。

379 :名称未設定 :2021/11/10(水) 01:33:49.74 ID:xiom6+O50.net
ウィジェットってprint()動かないんだけどどうするんすか

380 :名称未設定 :2022/02/27(日) 00:10:12.08 ID:GxW6qn2O0.net
別のSWIFTががが

381 :名称未設定 :2022/02/27(日) 11:25:05.53 ID:9gFTjU95H.net
海外送金とか一般人には無縁だからなw

マネーロンダリングチェックが厳しくなってから使わなくなったけどw

382 :名称未設定 :2022/02/27(日) 17:12:13.72 ID:bQc0XZlq0.net
ロシアではSWIFTが通らなくなる(ビルドエラー的な

383 :名称未設定 :2022/02/27(日) 17:27:51.85 ID:aDMwJgQE0.net
コンパイルできなくなるんか

384 :名称未設定 :2022/02/28(月) 17:41:22.89 ID:knxEXHKqa.net
ぷよぷよ〜!

385 :名称未設定 :2022/02/28(月) 21:42:19.95 ID:ODpZO1Ns0.net
今版権はSEGAじゃないかな。

386 :名称未設定 :2022/03/01(火) 20:30:43.17 ID:/se4xXwO0.net
XcodeとSwiftがガン、絶対にVScodeとflutterがいい。

387 :Mac歴34年の爺い :2022/04/23(土) 09:56:57.48 ID:gPLqfkE6r.net
>>386
何に対して癌なの?
Swiftに関するスレで、単に癌と言われても分からないよ。

388 :名称未設定 (ワッチョイ bc43-7LA/):2022/04/26(火) 21:21:57 ID:WRPtk5om0.net
おら、BASICの方が好きだな

389 :名称未設定:2022/09/01(木) 17:15:59.41 ID:EJgya/Nhl
日本の税金に寄生しているウクライナ民を見たら,國民を人間の盾にして、女こと゛も以外逃亡(出国)禁止にして戰わせてまで
利権に執着しているキチガイセ゛レンスキ一のクビをとっととプ─チンに引き渡して力エレと言ってあげよう!
クソジャップなら岸田と黒田とナツオのクビに安倍の喉仏まで喜んて゛贈呈して.
クソシ゛ャップか゛カによる一方的な現状変更で併合したクソアイ又不良債権島も引き取ってもらって即平和た゛ろ
曰本に原爆落とした世界最悪のならず者國家に平伏してマッチポンプワクチンだの兵器だの基地た゛のという白々しい名目て゛.
莫大な金を献上し続けてるヘタレチキン腐敗シ゛ャップの薄汚い爪の垢て゛も煎し゛て飲んと゛けや

創価学会員は、何百万人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まて゛出てる世界最惡の殺人腐敗組織公明党を
池田センセ─が□をきけて容認するとか本氣て゛思ってるとしたら侮辱にもほどがあるぞ!
hТТPs://i、imgur.cоm/hnli1ga.jpeg

390 :名称未設定 (アウアウウー Sa47-GWjr):2023/02/01(水) 15:19:32.40 ID:u5iuVq9Ha.net
はじめまして。swiftでiphoneアプリ作ろうと格闘中ですが、apiって自分で作るのはハードル高いの?企業が提供してるのを自分が使うイメージ?

391 :名称未設定 (ワッチョイ e311-6ZjJ):2023/02/01(水) 16:23:14.01 ID:FG2ZRU330.net
Firebase使えば?

392 :名称未設定 (ワッチョイW cec0-syx/):2023/02/03(金) 08:41:43.61 ID:TbkljcOH0.net
>>390
質問がよく分からないけどapiという仕組みを作るのは簡単だと思う、どのようなapiにするか中身による

393 :389 (アウアウウー Sa47-GWjr):2023/02/03(金) 09:01:16.32 ID:pkwSJLIia.net
>>391
うーん、よく分からん

>>392
簡単なのもあるんだ? 例えばお菓子情報を検索するアプリを作ろうと思って、その情報があるapiから引き出してくる訳だけど、そのapiを作る方法が分からず積んでるんですよー。

394 :名称未設定 (アウアウウー Sa47-syx/):2023/02/03(金) 11:15:11.49 ID:/LX3EUSMa.net
>>393
たぶんapiの意味を勘違いしてると思うよ、意味をググってみて。

お菓子情報DB <- apiはここ -> 作りたいApp

お菓子情報のデータベース(DB)をすでに誰かが作っていて、apiを公開(提供)してるならあとは使わせてもらうだけだよ。
自分でDBを作るならDBを読み書きする仕組み(api)を作るんだよ。

395 :392 (アウアウウー Sa47-GWjr):2023/02/03(金) 17:06:00.53 ID:MfOq3HSia.net
>>394
ありがとう。ググってみたらDBとアプリを繋ぐインターフェイスなんだね。本見てもわからなくて、お陰で凄いイメージできたっす。

単純なDBならgoogle sheetで作れそうだし、それをapi化すれば何とか形になりそうな気がする。

396 :名称未設定 (ワッチョイ 3f73-J12S):2023/02/04(土) 17:13:37.91 ID:gPmeYaoh0.net
会社で希望してみたらOKでてM1Max搭載機にしてもらえたんだが、
クリーン→ビルド時間が半分以上減ったので快適になってありがたい
ほんとIntelなんだったんだろうな…

397 :名称未設定 (ワッチョイ cf11-l9FX):2023/02/04(土) 18:22:29.13 ID:JeVoMfYY0.net
ストレージも高速化してるからな

398 :名称未設定 (スップ Sd5f-AMYP):2023/02/04(土) 22:49:50.89 ID: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):2023/02/04(土) 23:12:40.44 ID:JeVoMfYY0.net
>>398
URL(string:

URL(fileURLWithPath:
に変える

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

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

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

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

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

405 :名称未設定 (ワッチョイ c56e-1vwO):2023/04/10(月) 12:50:49.53 ID: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):2023/04/10(月) 13:02:33.94 ID:KAEhlb8J0.net
AnyObjectにするとか?

407 :名称未設定 (ワッチョイ c56e-1vwO):2023/04/10(月) 13:10:18.54 ID: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):2023/04/10(月) 13:14:51.34 ID:VlLpsHnQ0.net
変数を先に定義してもいいかもね。
あと一つのarrayに複数の変数入れるならinitとか使わんほうがいいとか
struct datafile {
let name: String
let size: Int
let time: Double
}

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

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

410 :名称未設定 (ワッチョイ c56e-1vwO):2023/04/12(水) 09:21:02.27 ID: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 :名称未設定 :2024/01/30(火) 14:33:22.81 ID:WmNtoPHn0.net
結局、>>208は無理ってこと?

412 :名称未設定 :2024/01/30(火) 22:07:59.02 ID:LbAI0VQV0.net
>>411

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

101 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★