Swift part9at TECH
Swift part9 - 暇つぶし2ch262:デフォルトの名無しさん (ワッチョイ 753c-Cf2b)
16/12/07 16:42:09.20 3hVk66ux0.net
>>255
プログラマならコードで語れよ

263:デフォルトの名無しさん (アウアウウー Sa19-M/0O)
16/12/07 17:05:47.74 +GcuVx5ha.net
自己解決しました
@Objcがいるんやな

264:デフォルトの名無しさん (ワッチョイ 3e93-wK09)
16/12/07 21:49:12.92 kEgAfPTA0.net
>>257
う~ん?
コード見てないからわかんないけどなんか違う気がする

265:デフォルトの名無しさん (ササクッテロリ Sp8d-v8zE)
16/12/07 22:18:03.37 04THRhb6p.net
まだその制約あったんだな
1.0とかの頃にノウハウとして使ってたわ
しかしまぁ今からやるならバッドノウハウよな

266:デフォルトの名無しさん (アウアウウー Sa19-YOWX)
16/12/07 23:22:18.33 frww6tdla.net
protocol testProtocol {
func method1()
optional func method2() ←エラー 'optional' can only be applied to members of an @objc protocol
}


@objc protocol testProtocol {
func method1()
@objc optional func method2()
}
これでうまく動いたんだけどやり方まずいですか?

267:デフォルトの名無しさん (ワッチョイ 9b3c-drn7)
16/12/08 07:39:50.56 Xgf0Zqhi0.net
>>260
こういう意見もある
URLリンク(blog.stablekernel.com)
コード
URLリンク(swiftlang.ng.bluemix.net)

268:デフォルトの名無しさん (スフッ Sd2f-YmwQ)
16/12/08 10:12:52.67 Y2Zm3Xi7d.net
>>260
使う側のコードが分からないからなんとも言え�


269:ネいけど 基本的に@Objc装飾子はObjective-Cプログラムに引き渡すコード・データに付けるものだから 仮に単純にswiftのプログラムであるとするなら@Objcが出てくる事に違和感がある 必要な時は必要なんだけどさ



270:デフォルトの名無しさん (アウアウウー Sa47-IVaD)
16/12/08 10:37:41.68 gKAxGgXua.net
>>262
装飾しつけないやり方ってどうやるんですか?

271:デフォルトの名無しさん (ワッチョイ 9b3c-Ts63)
16/12/08 10:51:52.94 6PCHYR3j0.net
>>263
>>261見ろよ…

272:デフォルトの名無しさん (アウアウウー Sa47-IVaD)
16/12/08 11:11:12.83 gKAxGgXua.net
ありがとうございました!

273:デフォルトの名無しさん (オイコラミネオ MM4f-YmwQ)
16/12/08 11:27:40.79 hXTPpY/nM.net
NS接頭語が残ってるクラスって理由あるの?
今後全て消える?

274:デフォルトの名無しさん (オイコラミネオ MM4f-YmwQ)
16/12/08 12:05:08.44 hXTPpY/nM.net
SE 0086読んだら解決しました^_^

275:デフォルトの名無しさん (ササクッテロリ Sp27-JVDy)
16/12/08 16:08:42.85 bAdCGSgKp.net
>>261
「手法」じゃなく冒頭の「意見」の部分読んだら
> Swift code should take another approach
って言ってるぞw

276:デフォルトの名無しさん (ワッチョイ 1b1d-YmwQ)
16/12/10 16:30:41.11 3iED4EzH0.net
URLリンク(developer.apple.com)
まだ、Swiftの記述になってないね( ´Д`)y━・~~

277:デフォルトの名無しさん (ワッチョイ 8b23-WerT)
16/12/10 16:35:07.62 oFE2vaPJ0.net
そのまま消えてくれても全然困らないけど

278:デフォルトの名無しさん (JP 0H47-XlRU)
16/12/10 16:48:21.29 qQjpy7DvH.net
名前長すぎ

279:デフォルトの名無しさん (ササクッテロラ Sp27-JVDy)
16/12/10 17:16:53.32 zoVCCI8Qp.net
SDKs
iOS 3.0+
macOS 10.12+
tvOS 3.0+
watchOS 2.0+
なぜiOS3の化石を移植したし
別名の同程度機能を持ったクラス作れば良かったのにな

280:デフォルトの名無しさん (スッップ Sd2f-WerT)
16/12/10 17:19:24.01 8DqJYhuzd.net
いつでもSwift辞められるようにだよ

281:デフォルトの名無しさん (ワッチョイ 37c9-Ts63)
16/12/10 20:02:36.75 djg+OUUZ0.net
CoreDataとかいう糞の固まりさっさと捨ててほしい

282:デフォルトの名無しさん (ワッチョイ cb17-YmwQ)
16/12/10 21:08:11.89 jnTTSzju0.net
NextStepからは逃れられないのだはは

283:デフォルトの名無しさん (ワッチョイ 8b8f-6LJV)
16/12/11 06:35:20.34 BAivgHXg0.net
coredataな代わりに何を使うのさ

284:デフォルトの名無しさん (ワッチョイ d33c-q+wp)
16/12/11 06:44:58.52 CPi1f3h00.net
Realmとか?

285:デフォルトの名無しさん (アウアウエー Sa7f-ZMVm)
16/12/12 14:22:12.85 AazRvE9ra.net
Swift 3.1 Release Process
URLリンク(swift.org)

286:デフォルトの名無しさん (ササクッテロリ Sp27-JVDy)
16/12/12 20:55:22.91 Xm48GD4Op.net
Sever APIs Project
URLリンク(swift.org)

287:デフォルトの名無しさん (ワッチョイ 8b23-WerT)
16/12/13 07:44:48.32 aGvNEn/F0.net
>>278
仕様変わりすぎでどうせ廃れるのにいつまで更新するの?

288:デフォルトの名無しさん (スフッ Sd2f-YmwQ)
16/12/13 08:28:32.83 CT9GP8dCd.net
変わり続けることが力の根源なのさ
by すとらうすとらっぷ

289:デフォルトの名無しさん (スッップ Sd2f-WerT)
16/12/13 09:26:53.84 73HQpuIOd.net
はやくも詳解Swiftの内容と整合とれなくなりそうだな

290:デフォルトの名無しさん (ワッチョイ 37c9-Ts63)
16/12/13 11:56:20.21 KXUQsQXn0.net
It is a strong goal that the vast majority of sources that built with the Swift 3.0 compiler continue to build with the Swift 3.1 compiler.

291:デフォルトの名無しさん (エムゾネ FF2f-XlRU)
16/12/13 12:17:59.60 hu4l98UtF.net
相模ゴム

292:デフォルトの名無しさん (ワントンキン MMef-YmwQ)
16/12/14 22:24:17.22 HfWj6KVmM.net
全ての絵文字を配列に入れたいのですが、どのような方法があるのでしょうか。また、mac本体にfinderなどで取り出せるemojiのファイルなどあるのでしょうか?

293:デフォルトの名無しさん (ワッチョイ 4fe5-Bhnc)
16/12/14 23:22:54.02 yky6KY2t0.net
わからんが、unicodeで保存するんじゃね
URLリンク(unicode.org)

294:デフォルトの名無しさん (ササクッテロラ Sp29-nol0)
16/12/15 08:29:23.14 CehXfGlIp.net
普通にStringでいいんじゃねーの
今時、サポートしてるだろ

295:デフォルトの名無しさん (オイコラミネオ MM34-jFiT)
16/12/15 12:47:12.71 K7xig0SVM.net
質問はどこにしまうかじゃねえだろ

296:デフォルトの名無しさん (ワッチョイ 413c-i+Qt)
16/12/15 20:39:21.84 aXGD97Aa0.net
>>285
URLリンク(www.codecaptain.io)
objcだけど、これでなんとかなったりしない?
うまくいったら教えてよ

297:デフォルトの名無しさん (ブーイモ MMb8-Nqhn)
16/12/15 22:22:11.29 lLtgDovqM.net
絵文字先頭のcharcodeを配列の先頭に入れて++してくだけじゃないのか

298:デフォルトの名無しさん (ワッチョイ 413c-i+Qt)
16/12/16 00:22:16.63 mSiPAeok0.net
>>290
それだとOS毎に使える範囲調べて調整しないといけないから、結果的にめんどくさいじゃん
と他人事ながら思うんだけど

299:デフォルトの名無しさん (ブーイモ MMb8-Nqhn)
16/12/16 12:54:32.41 I9PtonJVM.net
>>291
絵文字を扱える統一コードはunicodeしかないのだからosに依存せず一意でしょ。

300:デフォルトの名無しさん (ワッチョイ 413c-i+Qt)
16/12/16 13:40:25.16 +Tc7Ug9p0.net
>>292
そういうことじゃない
バージョン毎に使える絵文字(や肌の色など)が増えてるのさ

301:デフォルトの名無しさん (ブーイモ MMb8-Nqhn)
16/12/16 13:59:22.75 I9PtonJVM.net
>>293
それフォント依存。

302:デフォルトの名無しさん (アウアウウー Sa05-9Iap)
16/12/16 14:34:23.30 MTMicKBAa.net
実機に無線インストールって出来なかったっけ?

303:デフォルトの名無しさん (ササクッテロラ Sp29-nol0)
16/12/16 14:40:32.73 vMl/sGICp.net
なんでunicode限定で考える
swiftはマルチOS、任意文字コードで動かされる可能性のある言語だろ?(白目

304:デフォルトの名無しさん (スプッッ Sdc8-I7lW)
16/12/16 15:15:48.07 bXGI3+Qzd.net
>>296
こマ?

305:デフォルトの名無しさん (ワッチョイ 413c-i+Qt)
16/12/16 15:50:44.50 +Tc7Ug9p0.net
>>294
iOSの場合、実質バージョン依存とどう違うん?移植なんてする奴なんてごく一部じゃねーか

306:デフォルトの名無しさん (オイコラミネオ MM34-jFiT)
16/12/16 16:04:57.00 bO3N4lsnM.net
>>297
おいおい

307:デフォルトの名無しさん (アウアウウー Sa05-9Iap)
16/12/16 22:24:42.15 MTMicKBAa.net
アクションシートの表示がシミュレータだと動きますが実機だとアボートします。原因がわかりません

308:デフォルトの名無しさん (ワッチョイ 413c-0G5/)
16/12/16 23:41:13.06 G52QpNky0.net
まず服を脱ぎます
次にログを見ます

309:デフォルトの名無しさん (アウアウウー Sa05-9Iap)
16/12/17 06:22:29.26 4fBoIIO7a.net
>>301
ログがわかりません!

310:デフォルトの名無しさん (ササクッテロリ Sp29-nol0)
16/12/17 10:44:05.49 TkPf6t45p.net
ビックリするほどユートピアはいつ言えば良いですか><
ここに迷い混んだiOS関連質問者は初心者スレ行け、>>1からも飛べる
swiftに関係ない質問すると遊ばれちゃうよ

311:デフォルトの名無しさん (ブーイモ MM8d-Nqhn)
16/12/17 15:55:42.03 vQpe99jEM.net
>>298
勝手に条件絞られたら知るかとしか答えられないよ。
>>296
標準規格で絵文字を扱えるのはunicodeしかないからだよ。

312:デフォルトの名無しさん (ササクッテロリ Sp29-fQwo)
16/12/17 18:28:20.34 TkPf6t45p.net
標準規格で勝手に条件で絞られても...知らんなw
>>290ってそんなに簡単じゃねーだろ、と思いつつ考えないようにしてたけど++すんのやっぱりメンドイ
UInt8からUnicodeScalar作って、そこからCharacter作って、一般用途には更にStringにすんのかな
URLリンク(swiftlang.ng.bluemix.net)
Swiftは相変わらずオブジェクトの多段生成が鬱陶しいのう
extensionで省略できるから勝手にしろってスタンスなのかもだけど、Framework APIの在り様が好きになれない

313:デフォルトの名無しさん (ワッチョイ 413c-0G5/)
16/12/18 00:11:09.02 UYhf7FJp0.net
URLリンク(swiftlang.ng.bluemix.net)

314:デフォルトの名無しさん (ワッチョイ 56e5-jFiT)
16/12/18 10:19:10.98 9XJnJRxF0.net
すげぇぇええ

315:デフォルトの名無しさん (スフッ Sdb8-f0Z7)
16/12/20 19:27:56.22 vNqc8Ywld.net
>>306
国旗も入れてください

316:デフォルトの名無しさん (シャチーク 0C54-uX3G)
16/12/21 11:36:55.50 GYB+hQbmC.net
Unicode 9.0.0 の絵文字の一覧があるけど、見方がわからん
URLリンク(www.unicode.org)
URLリンク(www.unicode.org)

317:デフォルトの名無しさん (ワッチョイ 413c-0G5/)
16/12/21 11:59:56.06 xZVHhTrr0.net
>>308
国旗だけ
URLリンク(swiftlang.ng.bluemix.net)
国コード一覧
URLリンク(en.wikipedia.org)

318:デフォルトの名無しさん (スフッ Sdb8-X9Fs)
16/12/21 18:40:04.69 TE+vjmu6d.net
>>310
これはすごい
2文字国コードを全パターン生成してユニコード化するとは
ucs4が21ビットに制限された時は絶望したが
UTF32割と上手く作られてるなぁ

319:デフォルトの名無しさん (ワッチョイ e03c-i+Qt)
16/12/21 18:44:49.36 jZ5HwhFO0.net
>>310
Risってどういう意味?

320:デフォルトの名無しさん (ワッチョイ 413c-0G5/)
16/12/21 21:29:06.87 xZVHhTrr0.net
>>312
Regional Indicator Symbol (U+1F1E6から始まる地域コード用のアルファベット)の頭字語

321:デフォルトの名無しさん (ワッチョイ 7910-Azor)
16/12/21 21:55:35.03 pOOrMtXX0.net
>>311
UTF32じゃなくてUnicodeの合字システムが上手く作られてる、じゃないの?
RIS2文字が合字として国旗1文字(?)として表示されるようになってるはずだけど

322:デフォルトの名無しさん (アウアウウー Sa05-9Iap)
16/12/21 21:56:20.04 5lzFM20Ca.net
中級者向け技術書教えてください

323:デフォルトの名無しさん (ワッチョイ e03c-i+Qt)
16/12/21 22:57:01.50 jZ5HwhFO0.net
>>313


324:デフォルトの名無しさん (ワッチョイ 413c-AUQK)
16/12/21 23:02:50.14 6utLXA1y0.net
ViewとViewControllerは違うと、何度言えば解るんだ?

325:デフォルトの名無しさん (ワッチョイ bfb5-g5tI)
16/12/21 23:38:24.23 TqJ5vR9v0.net
すげーどうでもいい所だけど、関数の命名規則がおもろいな
swift.orgのガイドラインをガン無視で笑う

326:デフォルトの名無しさん (ワッチョイ e0c9-6+SE)
16/12/21 23:49:08.43 RCM7Zvqs0.net
国旗絵文字はぜんぜん上手くないぞ
ちょっと前に文字コードスレで話題になってたけど
[SE]スウェーデン国旗
[ES]スペイン国旗
[SE][SE]でスウェーデン国旗*2のつもりが
スウェーデン国旗が絵文字フォントに入ってなかったら
[S][ES][S]でスペイン国旗に実際に化けたりする
同じUnicodeのサロゲートペアは、上位と下位でコードブロック分けられてるから必ず[上位][下位]の組み合わせでペアの区切りを判別できるようになってたのに、
後発のRegional Indicator Symbolはそれをしなかった
責任者出てこいって感じ

327:デフォルトの名無しさん (ワントンキン MM3f-q7cB)
16/12/22 09:57:


328:05.57 ID:i/pZa1E8M.net



329:デフォルトの名無しさん (ワッチョイ bf32-hWIT)
16/12/22 10:50:51.81 qTtm125Z0.net
>>319
それは駄目だろ……1ビット上位下位を区別する情報入れられれば……

330:デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)
16/12/22 12:17:57.82 /ytrOsGa0.net
合成文字自体がもうな。
何考えて入れたんだこんなの

331:デフォルトの名無しさん (ワッチョイ 1f93-W3gD)
16/12/23 11:40:23.82 dCUGoqXg0.net
UCS/ユニコードが固定幅文字コードを諦めた事を考えれば
Swiftのstringは良く出来てるよな
背景を知らないとクソ使いにくいだけなんだが

332:デフォルトの名無しさん (ササクッテロリ Spcf-4tq9)
16/12/23 16:01:01.15 mdacHMN9p.net
イマドキ、文字を固定長で扱う新興言語なんてあるの?
2010年代で使われ始めた言語は総じてそんなものだろ

333:デフォルトの名無しさん (ワッチョイ 1f93-W3gD)
16/12/24 04:53:12.35 Kb337a0Z0.net
>>324
とりあえずおまいが文字列で困った経験が無いことは分かった
浅学ながら2010年以降にリリースされた言語をSwift以外に知らないが

334:デフォルトの名無しさん (ワッチョイ bf42-GMQd)
16/12/24 09:31:27.94 qYWxKasf0.net
>>323
もともとそのつもりだったのに諦めたのはutf-16だけだろ。

335:デフォルトの名無しさん (ワッチョイ 572b-1x4y)
16/12/24 11:13:10.13 8cn52jEt0.net
文字コードは7bit, 8bit, 16bitと固定長を続けてきて、ようやく固定長を諦めた印象
プログラミング言語の文字(列)は早々に固定長諦めて可変長に

336:デフォルトの名無しさん (ワッチョイ e342-i2qZ)
16/12/25 13:01:46.70 LALK6bkG0.net
>>322
26文字しか把握できないヤンキーの発想だから

337:デフォルトの名無しさん (スフッ Sd9f-W3gD)
16/12/25 16:22:48.74 dXQe++nzd.net
でもまあ、言語標準(含:標準ライブラリー)で、
ユニコードの国旗を1文字として
取り扱ってくれるようなプログラミング言語はまだ少ないと思うな
内部を隠蔽して複数のビューを通じて取り出せるのも嫌いじゃない
文字列が危険物であると言う主張が伝わってくる
あとは正規表現ライブラリの使いやすいのが提供されれば嬉しい
個人的な好みだけで言うとRubyの文字列の方が好きなんだけど

338:デフォルトの名無しさん (ワッチョイ bf42-GMQd)
16/12/25 21:35:08.96 LfSOKVhB0.net
>>327
32もあるからね

339:デフォルトの名無しさん (スッップ Sddf-rd9B)
16/12/26 08:33:15.74 ZBFCqPGMd.net
>>302
一旦服を着た方が良いよ

340:デフォルトの名無しさん (スププ Sd9f-W3gD)
16/12/26 08:38:33.30 +y9otMfad.net
>>330
せめて32bitフルに使ってくれればいいものを
21bitしか使わないなんて中途半端なことをしてくれるから
筋の悪いUTF16なんか早々に捨てちゃえば良かったのに

341:デフォルトの名無しさん (ササクッテロラ Spbf-vGip)
16/12/26 14:42:52.42 mhrTCx4Up.net
数年後、、、そこには32bitで足りなくなって64bitにしたUTFの姿が

342:デフォルトの名無しさん (アウアウウー Sa0f-dZB4)
16/12/26 15:08:39.98 3l7Xk6fYa.net
Swiftの醍醐味教えてください!!!

343:デフォルトの名無しさん (ワッチョイ 8fc9-aM8P)
16/12/26 15:22:17.28 TRnwbnfO0.net
>>333
宇宙人とシームレスに文書交換ですね

344:デフォルトの名無しさん (ワッチョイ 8fc9-aM8P)
16/12/26 16:20:07.97 TRnwbnfO0.net
朗報
URLリンク(japan.cnet.com)

345:デフォルトの名無しさん (ワッチョイ ef1d-W3gD)
16/12/27 09:45:54.40 emRcq3HU0.net
今日詳解Swift 第3版届かなかった(´;ω;`)

346:デフォルトの名無しさん (スップ Sd9f-auU4)
16/12/27 10:43:59.74 tr0nUT2nd.net
ざまあ

347:デフォルトの名無しさん (ササクッテロリ Sp4f-vGip)
16/12/27 11:51:09.22 sIydEYNyp.net
konozamaかな
>>334
毎年言語仕様を楽しませる感じに変更する所
いつも楽しく遊ばせて貰ってマス

348:デフォルトの名無しさん (ワッチョイ 0fbc-Jkes)
16/12/27 12:56:35.72 IWLnDm1d0.net
日曜プログラマ専用言語だからなSwiftは

349:デフォルトの名無しさん (ササクッテロリ Sp4f-vGip)
16/12/28 07:01:13.93 j4SHG8/Ap.net
こんな言語、業務でやろうものなら提案/採用したヤツをブン殴るレベルだよw
それをアポーが開発、保守してるのはウケる
いつコミュニティベースにして手を引くのか
4か5か、遠くもない未来だと思うんだけどなぁ

350:デフォルトの名無しさん (ワッチョイ 1f93-W3gD)
16/12/28 08:06:02.31 Obj5weA10.net
>>341
すまんうちはiOSアプリの新規プロジェクトはSwiftが第一選択肢だ

351:デフォルトの名無しさん (ワッチョイ 37c9-hFe5)
16/12/28 08:28:26.01 bvnjBJpz0.net
>>341
それは文法的にスジが悪いってこと?
それともまだ安定してないってこと?
前者ならObjCのほうが悪そうだし。
後者ならまだ新しいせいだし(mozillaのrustなんて1.0になるまで酷かった)。
それもほかに何かある?

352:デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)
16/12/28 08:38:48.68 yWrP/m5t0.net
Appleのフレームワーク自体いつまでたっても安定してないんだから言語が多少変わろうが誤差みたいなもんさ

353:デフォルトの名無しさん (ワッチョイ 0fbc-Jkes)
16/12/28 09:43:05.22 61DJDhP40.net
>>342
まじか、やべぇな...

354:デフォルトの名無しさん (ワッチョイ 6f10-YQ1g)
16/12/28 10:33:18.69 08RViD+L0.net
メインサービスのアプリとかで、アップデートをし続けることを考えていて、保守コストがどのみち継続的に出ていくのがわかっていればSwift
逆に請負のアプリなんかで次回の発注次第で大規模なアップデートするかしないか決まる、みたいなのだったらObjective-Cがいいんじゃないの?
要は言語仕様が変更されるかもしれないコストと実装そのもののコストの差を比較してどっちが低くなるかだと思うから
お客さんにとっては言語の仕様が変わったので今回は軽微なアップデートですが工数が余計にかかりますというのは納得ができないだろうしね。

355:デフォルトの名無しさん (スップ Sdff-6FRj)
16/12/28 10:38:56.02 bODOsbQ2d.net
>>346
「メインサービスのアプリとか」の「とか」は、「メインサービスのアプリ」以外の何?

356:デフォルトの名無しさん (ワッチョイ 8fc9-aM8P)
16/12/28 12:29:13.03 kFL7wfb20.net
>>346
次の保守が何年後か知らんけど
古いバージョンのswiftとか
だれも読めなくなってるよな

357:デフォルトの名無しさん (アウアウウー Sa0f-RXuE)
16/12/28 13:07:21.93 a+zBu4aja.net
Objective-Cからじゃなくてもおーけーでつか?

358:デフォルトの名無しさん (ワッチョイ 0fbc-Jkes)
16/12/28 13:36:15.97 61DJDhP40.net
C言語やったことあるならそれでもいいんじゃね?
Objective-CはC言語知ってれば普通の人ならちょこっとのコストで習得できっから

359:デフォルトの名無しさん (ワッチョイ ab66-DLF2)
16/12/28 23:06:32.13 zgsLwAdc0.net
CやってC++の必要性がわからなくてJavaでああこういうこと…
から、Objective-C来ると「最初からこれにしろ!」ってなる。

360:デフォルトの名無しさん (ワッチョイ 865b-4xst)
16/12/29 00:28:34.96 lKSLRFPi0.net
Objective-Cは歴史は長いけどほんと温故知新な言語だと思うわ

361:デフォルトの名無しさん (ワッチョイ 6a93-qQw5)
16/12/29 00:40:51.81 lVIy8RIr0.net
>>351
c++は別の世界
踏み込みすぎると暗黒面に引きずり込まれます
Swiftの方が安全

362:デフォルトの名無しさん (ワッチョイ 4ac9-vKOO)
16/12/29 00:40:53.89 OGBMppob0.net
>>352
え?どこが?

363:デフォルトの名無しさん (ワッチョイ e366-Fh/7)
16/12/29 01:53:14.80 lK2W9S2T0.net
ガベージコレクションよりリテインカウントの方がやっぱよかった。とか?
個人的にはたぶんsmalltalkからの流れなんだろうけど
恐ろしく「オブジェクトに命令を与えて何かさせる」で統一されていて
「できねぇのはそのオブジェクトの責任」で外への影響波及を最小限にしてる思想が面白かった。
(結合が疎の部分でクラス分けされていて、密な部分はC)

364:デフォルトの名無しさん (ワッチョイ 865b-4xst)
16/12/29 03:40:31.76 lKSLRFPi0.net
Objective-Cはシンプルなんだよね思想自体が

365:デフォルトの名無しさん (ブーイモ MMaa-Vq3R)
16/12/29 06:20:44.64 13IxHxtAM.net
メッセージ投げても聴こえない振りするオブジェクトとか
返事するけど何もしないオブジェクトとか

366:デフォルトの名無しさん (ワッチョイ de42-5AW6)
16/12/29 07:52:07.62 bUdbWaJH0.net
>>355
リテインカウントってただの関数名だぞ。
リファレンスカウントのことだとすると、swiftはリファレンスカウント方式のガベージコレクタなのでどちらか選択できる概念のものじゃない。

367:デフォルトの名無しさん (ササクッテロリ Spa3-fehe)
16/12/29 08:11:03.90 7bfuEKFUp.net
そういう言葉尻を挙げた煽りはいいから
swiftスレでobjcの良さを語り始める>>355も痛いけど、>>358も痛いわ

368:デフォルトの名無しさん (スプッッ Sd4a-4xst)
16/12/29 08:26:39.29 uZ56/Y+Td.net
自分の基準だけは正しいという前提

369:デフォルトの名無しさん (ワッチョイ de42-5AW6)
16/12/29 09:22:43.84 bUdbWaJH0.net
>>359
根本的に理解が間違ってることを指摘したのにどこが言葉尻なん?
何を指摘したのか理解してないだろ?

370:デフォルトの名無しさん (スップ Sdaa-tTSs)
16/12/29 09:37:09.17 NsphQCuqd.net
>>359
〉そういう言葉尻を挙げた煽り
言葉尻?
自分の無知や間違いを認めない方が問題。
とても大切な事。
動きを正しく理解していないから、そういう発言になるんだよ。
理解力が低いから、わからないんだろうな。

371:デフォルトの名無しさん (ワッチョイ 3b42-bIh6)
16/12/29 10:27:38.30 KtJtlY/K0.net
>>350
できん
ソースは俺

372:デフォルトの名無しさん (ワッチョイ 0ece-O/vA)
16/12/29 10:55:47.24 ZKfLUl1q0.net
>>336
ぶっちゃけ、朗報じゃないな。
エィっと、即刻https 接続必須にすべきだったと思うよ。

373:デフォルトの名無しさん (ワッチョイ d33c-CBwx)
16/12/29 17:09:44.23 Ql74sNGH0.net
>>350
だがSwiftにどっぷり使っててたまに触るとど忘れしてるんだよな

374:デフォルトの名無しさん
16/12/29 20:31:48.17 P9vMwfrX.net
XXX-Bridging-Header.hにでインポートしたヘッダファイルに書かれてる
コンパイラディレクティブ@class XXXXがswift側から見えないようで
Use of undeclared type ‘XXXX’
ってエラーがでるんですが解決方法とかありますか?

375:デフォルトの名無しさん (JP 0H4f-Vq3R)
16/12/30 16:15:57.73 Q3tvxZdgH.net
>>365
老化

376:デフォルトの名無しさん (ササクッテロラ Spa3-LbII)
16/12/30 18:28:31.72 +0G7T/E5p.net
Xcodeの問題かと思ったけど、シンプルな状態にしてもだめぽ
$ cat bridge.h
@class Hello;
$ cat main.swift
let hello = Hello()
$ swift -frontend -c -import-objc-h


377:eader bridge.h main.swift main.swift:1:13: error: use of unresolved identifier 'Hello' @class使わないで、素直に@interfaceで宣言したヘッダを食わせるしかないんじゃないかね swift-evolutionにも上がってない気がするから、どうしても欲しいなら挙げてみてはどうだろう



378:デフォルトの名無しさん (ワッチョイ f31d-qQw5)
16/12/31 01:24:26.16 JiRCGpmr0.net
Swiftの文字列の範囲ってどうなってるの?
"いろは"..."こまち" ~= "かおり"がtrueを返すのが良くわからない

379:デフォルトの名無しさん (ワッチョイ d33c-Sa8B)
16/12/31 09:25:48.68 mE/kuofD0.net
>>369
"いろは" <= "かおり" && "かおり" <= "こまち"

380:デフォルトの名無しさん (ワッチョイ f31d-qQw5)
16/12/31 11:55:44.89 JiRCGpmr0.net
そういうことか
ありがとうございます

381:デフォルトの名無しさん (ワッチョイ c678-qQw5)
17/01/01 16:12:05.39 LRDjbo8a0.net
>>369
どうしてそう言う文字列判定をやりたくなったのかをkwsk

382:デフォルトの名無しさん (ワッチョイ f31d-qQw5)
17/01/01 16:49:50.79 pJ4YqSE70.net
詳解Swift読んでたら出てきただけだよ

383:デフォルトの名無しさん (アウアウカー Sa6b-nn1e)
17/01/03 20:58:51.42 i262efYCa.net
1年くらい独学でやってきたけど、最近いきづまってきたなぁ。独学というのが無理があるのか、、、
勉強会でもあれば参加したい。

384:デフォルトの名無しさん (ワッチョイ 865b-O/vA)
17/01/03 21:21:58.86 mYtDE+670.net
そもそもSwift自体に無理があるから気にしなくていいと思う

385:デフォルトの名無しさん (ワッチョイ 4a3c-cI3V)
17/01/04 02:15:14.63 YVtV1wPR0.net
1年も独学ってどんだけ深掘りしてるのよ

386:デフォルトの名無しさん (ワッチョイ 865b-O/vA)
17/01/04 09:22:00.67 ws9aPhGs0.net
Swiftは仕様がコロコロかわるから学習もダラダラしちゃうんだろう

387:デフォルトの名無しさん (スッップ Sdaa-4xst)
17/01/04 09:55:37.90 AKqv+vIqd.net
Swiftはモダン()さを追求してんのか知らんが、「無駄に」without Cなんだよな
ラットナーのセンスがクソ過ぎ

388:デフォルトの名無しさん (ワッチョイ 4ac9-CBwx)
17/01/04 11:42:36.33 UeSeDktg0.net
リセットできる機会に無批判にC追従するほうがよっぽど無駄だろ
そんなんだから老害って陰口言われるんだぞオッサン

389:デフォルトの名無しさん (スッップ Sdaa-4xst)
17/01/04 12:14:42.85 JWIK2up0d.net
短絡的に老害とかいう意識高い系もどうかと思うわ

390:デフォルトの名無しさん (アウアウカー Sa6b-nn1e)
17/01/04 12:23:42.84 BZb3HoVpa.net
1年独学したと書き込んだものですが、もともとフォートランを少しかじったことある程度なんで、
プログラミングを1からやりたいという気持ちでした。
なかなかサンプルの内容も?となることがまだ多くて、独学の限界かもって思ってました。

391:デフォルトの名無しさん (ワッチョイ 865b-O/vA)
17/01/04 12:47:37.75 ws9aPhGs0.net
>>378
>「無駄に」without C
無駄にねぇw
まあわからんでもない
べつにwithout Cはいいんだけど、Cの便利だったシンタックスも
意地でも変えなきゃいけない感は確かにあるかもな

392:デフォルトの名無しさん (ワッチョイ 865b-O/vA)
17/01/04 13:01:22.83 ws9aPhGs0.net
>>381
発展途上なSwiftがまともに勉強する言語だというのは少し可哀想な気もするけど
一つ一つ覚えていけば難しくはないと思うけどな
行き詰まってるポイントでも書いてみればここにいるSwift愛者が答えてくれると思う

393:デフォルトの名無しさん (ササクッテロリ Spa3-fehe)
17/01/04 14:16:51.43 YWPaOegwp.net
一年前のswiftってどんなだったかなぁとQiita眺めてたら
Eitherが3で公式採用される?って夢見ててワロタ
そう言えばそんなものもあったなぁ

394:デフォルトの名無しさん (ワッチョイ 4a3c-cI3V)
17/01/04 18:23:56.54 YVtV1wPR0.net
>>381
最初にプログラミングの独学の仕方を独学することを勧める
Swiftに限って言えば今のところ英語のリソースにあたらないと厳しいと思う

395:デフォルトの名無しさん (ワッチョイ de42-lvqa)
17/01/04 18:41:03.84 SBIBjCGJ0.net
>>385
E言語の独学方法を教えてくれ。

396:デフォルトの名無しさん (ワッチョイ 1eba-vAWO)
17/01/04 18:42:19.06 oADIImOs0.net
他人のコードを読む
以上

397:デフォルトの名無しさん (ワッチョイ d33c-Sa8B)
17/01/04 22:55:09.63 MF1GJy5o0.net
>>381
読む→調べる(what)→調べる(why)
URLリンク(github.com)
行き詰まったら聞く

398:デフォルトの名無しさん (ワッチョイ 4a3c-cI3V)
17/01/04 23:50:11.58 YVtV1wPR0.net
>>386
まず目的の質を高めるのが大事
具体的に解決したい問題が念頭にあるかどうかで学習効率が大きく変わってくる
何のためにプログラミング言語を学ぶのか?
プログラミング言語を学ぶことで解決したい問題は何なのか?
例えば以下の3つなら3番目が断然学習効率が高い(エロ最強)
- 関数型プログラミングの考え方を知るためにHaskellを学ぶ
- iOSアプリを作れるようになるためにSwiftを学ぶ
- エロ動画のコレクションを自動生成できるようになるためにJavaScriptを学ぶ

399:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/05 00:05:47.40 JJBRc58h0.net
(続き)
1. 目的の質を高める
2. 信頼できる優れたリソースを選ぶ
   - チュートリアル、本、動画、オンラインコース、その他
   - スタンダードライブラリ、サードパーティライブラリ、その他ソースコード
3. 短期間に集中して学ぶ
   - 本なら1冊2週間以内が理想、どんなに長くても1ヶ月
4. 読むだけ見るだけじゃなく必ず手を動かす
   - 写経するだけでもやらないより格段にいいが自分で考えてコードを書く問題があると身につきやすい
5. ノートを取る
   - 本を読み返さなくてもある程度復習できるように
   - 自分の場合はアウトライナーを使ってる(マインドマップとかでもいいと思う)
6. 学びながら作る
   - 自分が欲しいと思う簡単なツールを学びながら作る
   - 例えば「セール中アプリを通知するツール」等
   - 言語を学ぶためにはCUIツールのほうが効率がいい
   - テキスト処理・ファイル処理・Webスクレイピング等
7. メモる(ノートとは別)
- HOWTO/Tips:~したい場合にはどうすればいいのか?
- WHY:なぜXXじゃなくYYするのか?
- ERROR:発生したエラー内容とその原因、再発防止策
- VOCABULARY:用語、概念
- REFERENCE:公式ドキュメント、Style Guide、リファレンス
以上が自分のやり方だけど目的や人によってやり方は変わるはず

400:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/05 00:11:19.38 JJBRc58h0.net
長文スマソ
良いコードを書くためにはたくさん読んでたくさん書いてたくさん書き直すのが大事だけど
新しいプログラミング言語を身につけるためには自分が使う道具を作ってみること(上の6番)が最重要な気がする

401:デフォルトの名無しさん (ワッチョイ 6f5b-9Pqs)
17/01/05 00:12:03.17 t0+k7rBa0.net
Swiftとか不向きすぎだろ

402:デフォルトの名無しさん (ワッチョイ 5b3c-IbiL)
17/01/05 01:08:30.19 RQyVxWdy0.net
SwiftのプロはSwiftで自家発電してるからな
そりゃ上達するわけだよ

403:デフォルトの名無しさん (スッップ Sdff-9Pqs)
17/01/05 01:11:24.33 YFuTJ90Hd.net
Swiftが始めて学ぶ言語なのは絶対おすすめしない
変な癖がついて他言語学ぶときの障害になる

404:デフォルトの名無しさん (ワッチョイ 1b66-SevC)
17/01/05 06:39:39.52 R8ehuYNe0.net
変な癖というか、なんでこれAppleがプッシュしちゃったのかわからんけど
後々に次世代になるポテンシャルはあるのかもしれんが
まだ海の物とも山の物ともつかない発展途上の言語で
なにより古参が困ってるのは
"別にこれでプログラミングが楽になるわけでもなんでもない、
理念なき新しい文法の新言語いつものように一個追加されただけ"
だってとこなんだよなぁ… 特に使う意味がない…

405:デフォルトの名無しさん (JP 0H3f-q3aP)
17/01/05 06:59:23.35 42rV0dhtH.net
>>394
わかりますω

406:デフォルトの名無しさん (JP 0H3f-q3aP)
17/01/05 07:00:36.19 42rV0dhtH.net
>>395
健保と住基とマイナみたいな

407:デフォルトの名無しさん (ワッチョイ ab8f-S2pU)
17/01/05 10:22:06.94 xO3cTqiR0.net
初めて使う言語にoptional型があると
面倒くさいとしか思わないかな?
null地獄

408:デフォルトの名無しさん (ワッチョイ db1d-+flj)
17/01/05 10:37:51.41 J4n9XDOy0.net
どうしてCGPointの位置がCocoaだと長方形の左下で、Cocoa Touchだと長方形の左上なんだろうね

409:デフォルトの名無しさん (ワッチョイ 1b7b-spyU)
17/01/05 12:13:39.84 rS/TqFdr0.net
>>398
全てのオブジェクトの変数がoptionalであるJavaで入門する奴が多いんだからそこは大した問題じゃなくね

410:デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
17/01/05 12:35:52.19 PwoXhQQ80.net
>>399
数学意識して左下にしていたのを実用重視で改めたのでは

411:デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)
17/01/05 15:08:20.98 zjhRqjNop.net
nullが許されない言語仕様ってrust推しかよ
初めて使う言語がObjCだった人も多いしswiftでも別にな
ObjCメッセージ文法が至上なのはいいけど、汎用性がねぇw
Swift Optional型なんざそれに比べれば誤差よのう

412:デフォルトの名無しさん (アウアウウー Sa3f-IW1l)
17/01/05 15:50:12.04 WkTIUcDja.net
ヌルが入る入らないを意識してプログラムするか?

413:デフォルトの名無しさん (ブーイモ MMff-S2pU)
17/01/05 17:18:55.89 oFOZ2y/SM.net
いっそのことrustを採用してくんないかな、iphoneのためだけに新言語とかめんどい

414:デフォルトの名無しさん (ワッチョイ dfc9-f1yY)
17/01/05 17:32:58.79 sWdRcuvD0.net
それいっちゃRustはFirefox書き直しのためだけの新言語なんだが…

415:デフォルトの名無しさん (スップ Sdff-oQtP)
17/01/05 18:22:18.82 YNtiq33Od.net
>>404
ほんとこれ

416:デフォルトの名無しさん (ブーイモ MM3f-twlg)
17/01/05 20:45:21.20 P+GiqLXdM.net
>>403

417:デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)
17/01/05 20:47:15.64 zjhRqjNop.net
rustはiOSで使えるクロスコンパイラが公式提供されてるんだから使えば?と思うけど
それはそれとして、 swiftがヤならobjcでいいじゃん、、、
どっちもイヤならアポー端末を諦めろというね

418:デフォルトの名無しさん (ワッチョイ 0f42-HvS5)
17/01/05 21:15:32.68 P4uSEloo0.net
Swiftオープンにするっていってたやん!

419:デフォルトの名無しさん (ワッチョイ 0fba-oQtP)
17/01/05 21:58:08.24 jBQh1CN00.net
オープンにしただろいい加減にしろ

420:デフォルトの名無しさん (ワッチョイ 6f5b-yz8t)
17/01/06 00:00:22.89 bcUwFgd80.net
iPhone(Apple)専用言語という意味ではObj-CもSwiftも一緒だけど
初めて学ぶ言語ならObj-Cの方がCの勉強にもなるからSwiftより断然まし
SwiftはObj-C以上に排他的変態的シンタックスだから初学者には
やっぱり個人的にはお勧めできないわ

421:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/06 00:22:09.68 Y1Cw0qRA0.net
排他的変態的シンタックスってどの辺のこと言ってるの?
そんな特殊だと感じることはないんだが
Objective-Cに比べると格段にタイプ量が減って見た目もスッキリするから
個人的にはそれだけでも大きなメリット

422:デフォルトの名無しさん (ワッチョイ 1b66-SevC)
17/01/06 00:28:39.65 BpurgW/q0.net
>タイプ量が減って
職業プログラマ特有のこの価値観がもうゲロ出るぐらい嫌い

423:デフォルトの名無しさん (ワッチョイ dfc9-f1yY)
17/01/06 00:33:12.22 PzH0fr810.net
Swiftが排他的変態的とか他の言語知らなさすぎるだけだろ
プログラマとして勉強不足なのバレバレだぞ

424:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/06 00:33:15.56 Y1Cw0qRA0.net
はあそうか
タイプはXcodeが補完してくれるから実質的にはそこまでの違いはないかもしれないんだが
文字を読む量が違うんだよ でそれはバグの量に直結するかんね

425:デフォルトの名無しさん (ワッチョイ 1b66-SevC)
17/01/06 00:50:24.79 BpurgW/q0.net
>文字を読む量が違うんだよ でそれはバグの量に直結するかんね
はぁ。
あなたは一生work1にwork2から変数A1を代入してこれでバグが少ない!とほざいててください。それでいいよ

426:デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
17/01/06 01:05:43.98 /fM3tdtK0.net
タイプ量の少なさは職業プログラマ云々より
関数型言語界隈からの価値観というか流れでは

427:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/06 01:57:40.55 Y1Cw0qRA0.net
>>416
読む量が減ればバグが減るって言ってるのに増やしてどうすんねんw

428:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/06 01:58:56.36 Y1Cw0qRA0.net
workなんて言葉久しぶりに聞いたけど
今でも普通に使われてる言葉なの?

429:デフォルトの名無しさん (ワッチョイ dfc9-6vgr)
17/01/06 02:18:34.24 EL7IyQQ80.net
>>404
同意

430:デフォルトの名無しさん (ワッチョイ 5f93-+flj)
17/01/06 07:52:01.44 Q/mvZ92R0.net
>>389
>>390
お前良い奴だな
なかなかいい学習ノウハウだ
おれRuby勉強した時は良質なxx写真がアップされているスレを解析して
スレ内のURLから写真を片っ端からダウンロードするプログラムを書いたな
そう言えば大学院の先輩に英語の速読できるようになりたいと聞いた時の回答は「Hな本読むといいです」だった
つまりエロ最強!

431:デフォルトの名無しさん (スプッッ Sdff-B9xl)
17/01/06 12:21:21.27 RUdDycfgd.net
>>415
そう、冗長だと見通しが悪すぎる。
半分はライブラリ設計のせいで、残りはc言語のせいの気もするけど。

432:デフォルトの名無しさん (ワッチョイ bb10-51vH)
17/01/06 19:38:50.74 Gq0Nc1/d0.net
Obj-CのNSArrayとかNSDictionaryのシンタックスシュガーなかったころはマジで横長になりすぎて読みづらかったけどね。
同等のJavaのコードに比べて、単に配列から値を取り出してるだけの行も複雑な命令を実行してる行も同等に横いっぱいになるから飛ばし読みがしづらくてしっかり読む必要があった。
わけのわからない変数名や関数名をつけて短くていいよねみたいな話ではないよ。BASICとかの時代じゃないんだからさぁ。

433:デフォルトの名無しさん (ワッチョイ 2b0c-tEgc)
17/01/07 00:28:19.84 DNozFqRa0.net
ポインタ周りをもうちょっとC寄りにしてくれたらなぁ。
別ファイルで objc コード書くと見通し悪いから、Swift に局所的に objc コード埋め込めたりすると面白いかな、
C#のunsafeとか __asm {} みたいに。欲を言えば言語指定クロージャみたいな感じ

434:デフォルトの名無しさん (ワッチョイ 5f93-+flj)
17/01/07 08:53:14.57 4HC1Pjzk0.net
>>424
それじゃwithout cにならないべ

435:デフォルトの名無しさん (ワッチョイ 6f5b-yz8t)
17/01/07 08:55:58.44 72YrLFZp0.net
だからwithout Cにする意味がないんだって

436:デフォルトの名無しさん (ササクッテロリ Sp3f-L2iV)
17/01/07 08:57:56.42 182Vw6zJp.net
それこそ可読性が悪いソースになりそう

437:デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)
17/01/07 09:19:02.71 OQtShFizp.net
HTMLの中にプログラム書けると可読性よくね? > PHPスゲー
なお、現在は、、、

438:デフォルトの名無しさん (ワッチョイ 6f5b-yz8t)
17/01/07 09:31:45.95 72YrLFZp0.net
「無駄に」without CなSwiftならではの悩みだな

439:デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
17/01/07 09:37:34.24 iBRfuxUXa.net
可読性を犠牲にしてまでもSwiftのソース中にCのソース埋め込めたらなぁ
って思う時って例えば具体的にどういうケースなんだろ
ただ単にC言語に慣れててすぐ書けるからってことじゃないよね?

440:デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)
17/01/07 12:02:53.35 OQtShFizp.net
>>424はSwift中にCが書けると可読性良くなると思ってるから質問に答える人がいない
一応、UnsafeMutablePointerを操作するよりはCの生ポインタ操作出来る文法が楽ってのはあるけど
Swiftでポインタ操作が必要なら自前ラッパーAPIで隠蔽して上位レイヤーでは気にしなくて済むようにするよ

441:デフォルトの名無しさん (ワッチョイ 6f5b-yz8t)
17/01/07 12:17:38.95 72YrLFZp0.net
細かい操作を実装できるCの柔軟性は強いよね
Obj-Cなら何も考えずそのまま実装できたことをSwiftでやろうとした時
どうするかって話だね
without Cを高らかに謳っているのだから仕方ないね
頑張ろう

442:デフォルトの名無しさん (オッペケ Sr3f-6vgr)
17/01/07 17:26:53.31 UVIgJaZNr.net
>>430
システムコール使うときとか?

443:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/07 17:53:33.27 p94OVxAQ0.net
別スレで話に上がってたけど
ファイルを行単位で読んで処理しようとする時とか
CのAPI使ったほうがスッキリ書けたりするケースがあるんだよね
URLリンク(stackoverflow.com)

444:デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
17/01/07 18:02:35.45 hf6ybaU+a.net
>>434
でも、それ別ファイルにCで記述して、Swiftから呼ぶようにした方がメンテナンス性あるんじゃね?

445:デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)
17/01/07 18:34:39.92 OQtShFizp.net
CR, LF, CRLFを認識出来てないそのコードは危なかろうて
回答上位にある汎用クラス作って云々が良いとも思わないけども
そういうフォローをちゃんとした単純関数で実装したらCでもSwiftでも大して変わらんよな
、、、Swiftなら全データをStringに突っ込んで、改行文字でsplitとか乱暴するのも一興か

446:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/07 18:52:21.07 p94OVxAQ0.net
>>435
どうだろうね?
別ファイルにしてAPIのインターフェース考えて実装してメンテナンスしていく手間をかけるだけのメリットがあるのかどうかによるよね
>>436
メモリのフットポイントを気にしないならSwiftでもそう変わらないだろうけど
気にするならNSDataとかで処理しないといけないからSwiftのほうが面倒だと思うよ

447:デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
17/01/07 19:10:10.76 IyWm4kw10.net
この手のはアドホックなことせずに
バイトストリーム、キャラクタストリーム, レキサー/パーサーに分けて繋げた方が後が楽だと思う

448:デフォルトの名無しさん (ワッチョイ 2bf8-+flj)
17/01/07 20:04:55.49 Gk0CJ/2J0.net
>>434
CのAPIの方が簡単と言うのはプログラマが担保しなきゃいけない安全確認とかを全部すっ飛ばして書けるからであって
必要な安全性を確保しながらコード書くならSwiftの方が簡単だよ

449:デフォルトの名無しさん (ワッチョイ 6fa2-+flj)
17/01/07 20:37:16.77 w3Yo/XU60.net
withoutCマンセーと言われましても
SIMD使う時とかはしょうがないよね?
そういうケースが稀なのは認める。

450:デフォルトの名無しさん (ワッチョイ dfc9-f1yY)
17/01/07 20:48:06.16 eRueAzeT0.net
without CはSwift単体の文法の話であって、別にCとの適材適所・協調/協働を否定する標語では全くないのにわざと混同してる奴がいるな?

451:デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
17/01/07 20:52:00.96 UTTve38fa.net
>>437
別ファイルにするにしても、同一ソース内に埋め込むにしても、データ受け渡しのためのインタフェースは考えないといけないだろ

452:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/07 21:1


453:8:40.07 ID:p94OVxAQ0.net



454:デフォルトの名無しさん (スププ Sdff-+flj)
17/01/07 21:48:31.26 A7PZcJW4d.net
>>443
>用意されてるCのAPIを使うかSwiftで自作のAPIを作るかの違い
そこに「用意されているSwiftのAPIを使う」と言う選択肢がないのがおかしくないかい?
SwiftならファイルパスでStringを初期化してenumrateLinesするだけでいいから
CのAPIでゴチャゴチャ作るよりはるかに簡単で安全だよ?

例えばあなたが>>443の下部で引用しているCの関数を使った例では
バッファサイズとして4096を取っているから
一行が4095文字以上の入力を受けると正しく動作しなくなっちゃうよ
この制限をC言語で解決するのは結構面倒くさいよ

455:デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
17/01/07 21:49:05.59 UTTve38fa.net
>>443
コード見たよ
で?

456:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/07 21:55:01.67 p94OVxAQ0.net
>>444
>SwiftならファイルパスでStringを初期化してenumrateLinesするだけでいいから
それメモリに全部読み込んでるでしょ?
極端な例だけど300MBのファイルだとして全部最初にString化するの?

457:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/07 21:55:42.79 p94OVxAQ0.net
>>445
見てて>>442みたいな考えなら特に言うことはない

458:デフォルトの名無しさん (スプッッ Sdff-GcKO)
17/01/07 22:12:08.42 DTtrdLJ+d.net
>>434
「ファイルを行単位で読んで処理しようとする時とか」の「とか」は、「ファイルを行単位で読んで処理しようとする時」以外の何?
>>439
「プログラマが担保しなきゃいけない安全確認とか」の「とか」は、「プログラマが担保しなきゃいけない安全確認」以外の何?

そんな「とか」の使い方じゃ、まともな仕様は作製できない。

459:デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
17/01/07 22:21:44.29 IyWm4kw10.net
研鑽兼ねて>>438で書いたこと自分でやってみた
URLリンク(swiftlang.ng.bluemix.net)
・セル内の改行に対応
・パイプライン的に処理(バッファ境界でUTF8が破断することも無し)
・改行コードはちょっと端折り

460:デフォルトの名無しさん (ワッチョイ 5f93-+flj)
17/01/07 23:25:32.71 4HC1Pjzk0.net
>>448
残念ながらこれは仕様書ではない
安全確認以外の何かを明確にするにはまず安全とは何かを定義しなければならないが
それを定義にするのは本来の議論の範囲外であり、
議論の本質の理解の妨げになるためあえて定義を行わなかった
そこで、明確に定義されていないことを明確に示すために「とか」を用いている

そう言うことを聞きたいわけ???

461:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/07 23:32:17.40 p94OVxAQ0.net
>>449
超できる子だな
Swiftのシーケンスって読み終わったところからメモリ開放されるのかな?
そうじゃなければ別途chunkに分割しないと全処理時は最終的にメモリに乗るよね

462:デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)
17/01/07 23:54:15.55 PPvI4deGp.net
出来ない子だな、お前は教えて君か

463:デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
17/01/07 23:55:36.10 IyWm4kw10.net
>>451
Iteratorのクロージャが強参照してるもの以外は順次開放されるよ
UTF8デコーダと内部バッファ(4バイト?)、字句解析用の変数(end,hold)、
1レコード分(row:[String])がメモリ消費する
Array(parseCsv(...))すると全部抱えてしまうのでforEachで1レコードずつ処理する必要はある

464:デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
17/01/08 00:11:05.12 JrkgmnK40.net
あと filePath → AnyIterator<UInt8>
URLリンク(swiftlang.ng.bluemix.net)

465:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/08 00:46:34.89 9hp7bz6e0.net
>>453
そっかありがとう
>>454
すげーな 超参考になる
ファイル読み込みはchunkでやるけどあとはバイトストリームで処理できるから境界の心配しなくていいのね
こういうシーケンス使った考え方を知るのになんかオススメの本とか資料とかもしあったら教えて
Swiftじゃなくてもいいので

466:デフォルトの名無しさん (ワッチョイ 6f5b-yz8t)
17/01/08 09:45:34.32 qkk6ZrX+0.net
->って何?アロー演算子ですか?^^

467:デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
17/01/08 10:12:37.73 JrkgmnK40.net
>>455
今ググって見つけたページではあるけど、こういうから知識を拾っておくと良いかも
URLリンク(hexadrive.jp)
URLリンク(ufcpp.net)
URLリンク(postd.cc)
の前半あたり
URLリンク(www.aerith.net)
切り分け方は先人に学ぶ感じで
URLリンク(kmaebashi.com)
URLリンク(msdn.microsoft.com)
用語バラバラだから似てるもので並べると
Swift3のSequence(2のSequenceType) ≒ AnyIteratorを返す関数
≒ JavaのIterable ≒ Pythonのジェネレータ ≒ C#のイテレータブロック/IEnumerable
Swift3のIteratorProtocol(2のGeneratorType) ≒ AnyIterator
≒ JavaのIterator ≒ Pythonのイテレータ ≒ C#のIEnumerator
※AnySquence, AnyIteratorはジェネリクス対応用(型消去法)

468:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/08 17:36:54.12 9hp7bz6e0.net
>>457
ありがとう
心のなかでマスター先生と呼ばせてもらうよ
素養が違うからか教えてもらった記事からだとマスター先生の考え方に近づけそうにないんだが
もう少し頭のなかをストリーム化できるように日々修行するわ

469:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/08 17:40:12.38 9hp7bz6e0.net
>>456
関数の戻り値の型
func greet(person: String) -> String {…}
↑Stringを返す関数

470:デフォルトの名無しさん (ワッチョイ 5f93-+flj)
17/01/09 00:00:23.02 eHS8l2Ef0.net
>>446
300MByteなら躊躇せずオンメモリで処理するかな?
1GByteならちょっと悩んでストリーム処理にするけどそれは実際に1GByteのファイルを喰らってから考える
遅くなるだけで処理としては破綻してないし
enumerateLinesでイテレート処理してれば
ストリーム処理にする場合でも行単位で文字列を取り出せるイテレータを定義するだけで
後段はそのまま使えるから移行は比較的楽
逆に
Cの関数で4095バイトとかバッファサイズで打ち切られちゃうと
4095文字以上の行に対応させるには
バッファの確保やマルチバイト文字の整合性とか色々考えるのが面倒

要するにCで書いてもSwiftで書いても簡単に書けるのは入門書のサンプルプログラムレベルのもので
細かいチェックを入れるとどちらもそこそこ書き込みが必要
その上で
1行が4095文字を超えると破綻するCの関数がいいと思うか
巨大ファイルを渡されると処理速度が遅くなる可能性のあるSwiftの標準関数を使うか
と言うだけの話だと思うよ
で、Swiftでプログラム書いてる途中でこの処理が必要なら
俺ならSwiftで書く方を選ぶと思う

471:デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
17/01/09 00:13:07.51 vNdwgc8fa.net
Perl最強

#!/usr/bin/env perl
while (<>) { print; }

472:デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
17/01/09 00:18:04.60 vNdwgc8fa.net
shellと組み合わせれば無敵
ちょっとした変換も簡単実装
cat lower.txt | perl -e 'while(<>) { print uc; }' > upper.txt

473:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/09 00:57:25.52 JTALZxOQ0.net
>>460
1GB使ったらiPhone6以下なら毎回クラッシュだよ
メモリの使用量を抑えつつ巨大なテキストファイルを読み込む時にどう処理するかって時の例だから
そこをすっ飛ばしたら意味ないがな
>Cの関数で4095バイトとかバッファサイズで打ち切られちゃうと
バッファサイズは状況に応じて変更すればいいでしょ?
それに本当に必要なら読み込んだバッファの最後の文字が改行じゃなければ次を読み込んで足してから処理すればいい
個人的にはそういう処理が必要になるようなケースには出会ったことがないけど
NSStream+NSDataとかでも同じことできるんだけど少し余計に手間がかかるから
Cを選ぶ人がいてもいいんじゃないかって話だ

474:デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
17/01/09 01:06:52.96 vNdwgc8fa.net
まぁ、データの入力ミスとか、誤ってバイナリデータ読ませちゃうこともあり得るからな

475:デフォルトの名無しさん (ワッチョイ 5f93-+flj)
17/01/09 01:26:40.47 eHS8l2Ef0.net
>>463
>バッファサイズは状況に応じて変更すればいいでしょ?
プログラムはどうやって状況を判断するんだ?
日本語の小説流し込んだら簡単に1行がメガバイト単位になるぞ?

476:デフォルトの名無しさん (ワッチョイ 0fba-oQtP)
17/01/09 02:22:19.00 9ACblGiY0.net
まとめられててワロタ

477:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/09 04:04:22.01 JTALZxOQ0.net
>>465
別スレで質問してた人?
バッファサイズ考えるより前にそのファイルの入手方法を考えなおしたほうがいい気がするが

478:デフォルトの名無しさん (ワッチョイ 5f93-+flj)
17/01/09 11:54:09.06 eHS8l2Ef0.net
>>467
>別スレで質問してた人?
違うよ
単に俺(>>467)が>>434に難癖つけてるだけだよ
Cで書いた方が簡単な事もあるの例に
文字列I/Oって言う危険物を持ってきた上で
安全チェックもしてないコードを引用して、ほらCで書いた方が簡潔でしょ?
と言う論調がおかしいと思ったんで噛み付いてる
確かにCで書いた方がいい事もいっぱいある
だけど少なくともI/Oとか文字列処理とかC言語の中でも1番の危険物を持ってきて
危険だと言うことを知らせずにCで書いた方が簡単な例に上げるのはどうかと思うよ
こう言う危険性もあるけど、swiftからcの関数を呼び出せばこう言う書き方も出来るよ程度にしておいて欲しい

479:デフォルトの名無しさん (ワッチョイ 5f93-+flj)
17/01/09 11:55:28.60 eHS8l2Ef0.net
>>468
すまんあんかミス
>単に俺(>>467)が>>434に難癖つけてるだけだよ
おれは>>465ですた

480:デフォルトの名無しさん (ワッチョイ 7bcf-q3aP)
17/01/09 12:49:46.11 4OeNzyzM0.net
>>468
入力が固定されてるなら問題ないと思う

481:デフォルトの名無しさん (ワッチョイ 5f93-+flj)
17/01/09 13:58:21.90 eHS8l2Ef0.net
>>470
ファイル入力で常にこちらの思い通りのデータしか来ないことを想定するの?
入門書のチュートリアルならそれでもいいけどさ
入力データをこちらで決める事ができるなら
JsonとかXMLとかRealmとかのこなれたライブラリが存在するファイル形式を採用する方がいいと思うよ
そんなことを考えるとswiftの中でcを直接使うことの優位性はあまり無いと思うんだ

482:デフォルトの名無しさん (アウアウカー Sa3f-7kys)
17/01/09 14:53:15.83 C7tBzNeYa.net
オートレイアウト使ってるやつなんているのかな?まじでゴミだと思うんやが

483:デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
17/01/09 15:21:45.24 abgacrATa.net
まぁ、ほぼC言語使えるんだけどね
書き方の慣れの問題だけで
let lineSize = 1024
if let file = fopen(filePath, "r") {
 let data = UnsafeMutablePointer<Int8>.allocate(capacity: lineSize)
 defer {
 data.deallocate(capacity: lineSize)
 }
 while((fgets(data, Int32(lineSize), file)) != nil) {
  if let str = String(utf8String: data) {
   print(str)
  }
 }
}
>>472
バリバリ使ってるよ

484:デフォルトの名無しさん (スッップ Sdff-GcKO)
17/01/09 15:25:37.56 ynBqv2kkd.net
>>472
中上級の奴が使いたがるんだよね。
で、viewDidLoadで、IBOUTLETのframeいじって「変わらない!Xcodeのバグだっ」て騒ぐんだよね。
お前が世の中のバグだから。

ライフサイクル解らないグズだから。

485:デフォルトの名無しさん (ササクッテロリ Sp3f-/ZRc)
17/01/09 15:32:05.60 rN+gQaLTp.net
>>473

なんか長文くんまで現れてやってたけど結局これよな
しかし UnsafeMutablePointer を let 宣言できるのが相変わらずキモい
特別扱いできないものかねぇ

486:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/09 17:35:13.39 JTALZxOQ0.net
>>468
そっか別人か
そのメガ単位で改行されてないテキストファイルって一般的なの?
平均3バイト/文字としても3MBで100万文字だよ?
fgetsやfscanfと同じ機能を持つAPIは今のところSwiftにはなくて
同じようなことをしようとするとどうしても結構な量のコードを書く必要があるから
CのAPIを使いたい場合の例として>>434を上げた
UnsafePointerを扱うってことは
メモリ周りで問題を引き起こすコードを書く危険性が高まるってことだからそこを天秤にかける必要性はわかる
ただそれ以外の安全チェックとか危険性とか言ってる部分はSwiftなら全部面倒みてくれるわけではないよね

487:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/09 17:49:07.80 JTALZxOQ0.net
>>465
別人だってことなので一応この質問に答えとくと
プログラムで扱うファイルの1行の最大長が予測可能な範囲にあるならそれに応じてサイズ変更すればいいって意味ね
そうじゃないなら>>463に書いたようにバッファ内に改行があるかどうかをチェックして複数回バッファ読んでから処理する
この辺はC使っても使わなくても同じ
100MBを超えるようなテキストファイルってログファイルくらい処理しかないから発想が貧弱なのかもしれないけどね

488:デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)
17/01/09 17:51:25.34 LuXubKyCp.net
データ受け渡しのためのテキストファイルに改行コードいれるかどうかは設計者の決めることだからなぁ

489:デフォルトの名無しさん (スッップ Sdff-GcKO)
17/01/09 17:58:25.64 ynBqv2kkd.net
>>477
ログ以外だと、何かのデータファイルをCSVで書き出したケースも考えられる。
過去やったのだと、クイズを出すアプリで、問題をひたすらテキストファイルで持っていた。
でも、移動体端末で、でかいファイルを処理するのって、基本的なarchitectureを考え直した方が良い気がする。

490:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/09 18:09:09.39 JTALZxOQ0.net
>基本的なarchitectureを考え直した方が良い気がする。
100%同意
iOSならテキストデータのインポート・エクスポート時が一番のユースケースだろうね

491:デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)
17/01/09 18:49:37.59 LuXubKyCp.net
htmlもxmlもJSONも改行コードは必須じゃないからなぁ

492:デフォルトの名無しさん (ワッチョイ 5b3c-GcKO)
17/01/09 19:35:52.53 Mfdzy40n0.net
>>480
まあ、
>>477
さんの言う通りログなら仕方ないんだけれどもね。
ただ、そんなデカイログを端末で見るというarchitectureが・・・以下自粛。

493:デフォルトの名無しさん (ササクッテロロ Sp3f-+flj)
17/01/09 19:38:32.72 uxZFBykMp.net
Autolayoutが使えないのは論理的思考の出来ない馬鹿
あんなもん設定した通りの優先順位付けで表示されるだけだろ

494:デフォルトの名無しさん (ワッチョイ 0f7b-MPfw)
17/01/09 23:59:11.54 qvjxruLM0.net
ログなんて、圧縮するだろ
JSのファイルでも、Minify とかで圧縮する

495:デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
17/01/10 00:08:49.29 qN25f4rba.net
それがどーした?

496:デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)
17/01/10 09:52:08.69 0L0fi+PIp.net
CとSwiftでraw文字列の読み込みの実装難易度が違う
って話だったのに、データ構造だのAuto Layoutだのを議論しててワロタ

497:デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
17/01/10 10:27:31.44 hQEZjrPha.net
初心者かな
話が飛ぶのは2chではよくあることだから

498:デフォルトの名無しさん (スプッッ Sdff-oQtP)
17/01/10 10:40:39.28 L0gptR0Sd.net
で?

499:デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)
17/01/10 10:53:58.04 FDJAHjJcp.net
ん?

500:デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)
17/01/10 10:56:22.37 0L0fi+PIp.net
>>487
お前バイク板住民かよぉ
(今もあそこがアレな板なのかは知らん)

501:デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)
17/01/10 11:17:06.45 FDJAHjJcp.net
最初は文字列の読み込みうんぬんというより、インラインでC言語を記述したいって話じゃなかったっけ?
で、そのあと、具体例として、ファイル読み込みの話になって、C言語で書いても可変サイズの行だと面倒じゃね? という話になって、そっからデータ構造の話に発展して、どさくさ紛れに、Auto Layoutの話を入れてくるKYが現れて、ってのがここまで流れだと思ったが...
まぁ、別に同じスレッドで違う話題を同時に扱うなって決まりはないしな

502:デフォルトの名無しさん (ワッチョイ df2b-vyGv)
17/01/10 11:44:11.95 nWa+BtAl0.net
プログラム技術@2ch掲示板
> ネタ、板とは関係の無い話題はご遠慮ください。
決まりはあるんだけどな
Inline C in Swiftはネタ(当人はマジの様子)だけど、それ以降はSwiftに絡めたネタも少なく・・・
データ構造やAutoLayoutを話すのはいいが、ネタとしてSwiftを絡める努力をしよう(他人事

503:デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
17/01/10 11:56:12.46 1oVGbtNGa.net
プログラム技術板で、データ構造やAPI絡みの話を交えるなっつうのは頑固すぎるわ
AutoLayoutに至っては4レスあっただけなのに
Swiftと全く無関係ってわけでもないやろ

504:デフォルトの名無しさん (スププ Sdff-+flj)
17/01/10 12:28:56.18 VHs9RTlPd.net
Swiftでファイルダンプするだけならこれで良くね?
while let l = readLine() {
print( l )
}
ただしファイルを標準入力にリダイレクトしておく
FileHandleにreadLineが定義されていないのが謎

505:デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)
17/01/10 12:35:10.25 0L0fi+PIp.net
イマドキのAPI設計的にはFileHandlerと切り離したReaderがあるんじゃね
SwiftのCoreAPIにReaderがないのは3rd party libにぶん投げしてる気がする

506:デフォルトの名無しさん (ワッチョイ dfc9-f1yY)
17/01/10 14:03:45.11 8RubTyxI0.net
Foundationが貧弱なのが悪い

507:デフォルトの名無しさん (ワッチョイ 7bcf-q3aP)
17/01/10 14:08:24.18 s989ZmsY0.net
>>481
昔の2ちゃんのhtml思い出した

508:デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
17/01/10 15:07:36.80 tt6nQotl0.net
型推論ネタ, 以下Aは動くがBはmapに呪いが掛かってしぬ
// A
let s = sequence(first:0){$0+1}
.lazy
.map{$0*2}
s.prefix(10)
.reversed()
.forEach{print($0)}
// B
sequence(first:0){$0+1}
.lazy
.map{$0*2}
.prefix(10)
.reversed()
.forEach{print($0)}

509:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/10 17:22:06.72 PjuH0Yrh0.net
Bでも型指定すればいいのかもしれんがどうやって指定すればいいのか分からない
こういうの普通に動くようになって欲しいね
他言語だと問題なく動くケースのような気がする
(->> (iterate inc 1)
(map #(* 2 %))
(take 5)
(reverse)
(map printl


510:n))



511:デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)
17/01/10 17:34:25.49 0L0fi+PIp.net
関数型()にかぶれた可読性のないコードだと思った(コナミカン
関数型言語なら文化に合ってるんだろうけどSwiftで書くコードじゃねぇ
もっと読みやすい書き方あるだろとコンパイラ以前に、人間様がコードレビュー時に発狂したい

512:デフォルトの名無しさん (スッップ Sdff-+flj)
17/01/10 17:46:11.19 IYumFm2zd.net
>>494
よし、これならcを使った方が簡単に書ける例として文句無かろう
import Foundation
guard let fh = FileHandle(forReadingAtPath: "xxx"),
dup2(fh.fileDescriptor, 0) != -1 else {
fatalError("file/dup error")
}
while let line = readLine() {
print(line)
}

513:デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
17/01/10 17:51:57.47 aMk4PEuoa.net
先にprefixすればいいんやで
sequence(first:0){$0+1}
.prefix(20)
.map{$0*2}
.reversed()
.forEach{print($0)}

514:デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
17/01/10 18:00:07.10 tt6nQotl0.net
>>502
処理順を入れ替えられる例を出してすまん
map→filter→prefixのような場合は対応出来ない

515:デフォルトの名無しさん (ワッチョイ dfc9-f1yY)
17/01/10 18:59:28.94 8RubTyxI0.net
これが読みにくいとかさすがに化石すぎだろ

516:デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)
17/01/10 20:03:26.36 FDJAHjJcp.net
結局 reversed()が癌なんやな
makeIterator()かませばいけるけどな
sequence(first:0){$0+1}
.lazy
.map{$0*2}
.prefix(10)
.makeIterator()
.reversed()
.forEach{print($0)}

517:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/10 20:46:07.85 PjuH0Yrh0.net
>>501
これいいね
エンコーディングの融通はきかないけど
Extensionにして気軽に使える

518:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/10 21:15:41.77 PjuH0Yrh0.net
どうでもいいけど改行コード云々はファイルフォーマットの話でデータ構造とは関係ないと思う

519:デフォルトの名無しさん (ワッチョイ 5f93-+flj)
17/01/10 22:31:43.58 Vzu2YddV0.net
>>507
ファイルフォーマットはデータ構造だとおもうが?

520:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/11 00:03:32.25 wniphiOc0.net
広義ではそうなのかもだけど
一般的にはデータ構造って言うともう少し論理的なもの(例えばArrayとかDictionaryとか)で
そのデータがシリアライズされたファイルフォーマット(ファイルの構造)とは別の話じゃない?
「じゃ、ここのデータ構造はJSONでお願い」って言われたら違和感あるよね

521:デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)
17/01/11 00:16:18.42 5OhI584zp.net
変数名に$が付くとPerlを思い出す化石マン
Rustみたく変数名に名前付けたい
>>ワッチョイ df3c-FtWv
もういいから、自分が否定されないように前提条件、論点をズラし続けるから
風が吹いたら桶屋が儲かるみたいなスレチになるんだよ
またSwiftに関係ない議論を吹っ掛けてんだろ

522:デフォルトの名無しさん (ワッチョイ df3c-FtWv)
17/01/11 00:32:18.40 wniphiOc0.net
>>510
議論するつもりはないから
いい大人ならオブラートに包んでるって気づけよな

523:デフォルトの名無しさん (ササクッテロロ Sp3f-yz8t)
17/01/11 00:45:33.03 6QBqeohxp.net
SierのSE的には
データ設計で決めるのがデータ構造
ファイル設計で決めるのがファイルフォーマットだろ
プログラムはよくわからんから実装方法は各プログラマに任せるみたいな

524:デフォルトの名無しさん (ワッチョイ 1b17-+flj)
17/01/11 04:58:51.90 jTTy0tPr0.net
ラトナーApple辞めるってよ

525:デフォルトの名無しさん (ワッチョイ 5fe5-+flj)
17/01/11 07:20:50.12 V2u2R+4Y0.net
Lattnerまじかよ

526:デフォルトの名無しさん (スップ Sdff-oQtP)
17/01/11 08:02:31.25 jHuXm8fPd.net
swift終了のお知らせ

527:デフォルトの名無しさん (オイコラミネオ MMff-2HrH)
17/01/11 09:04:44.13 7pf6bg3nM.net
そしてオラクルが手に入れる

528:デフォルトの名無しさん (エムゾネ FFff-9Pqs)
17/01/11 09:09:16.22 0/vimycYF.net
>>513
Swiftがこの有り様だからな
つーかもともと言語としてのセンスがやはりなかった
Objective-Cから変える技術


529:的逼迫性もなかった まあオープンソースだし日曜プログラマは引き続きモダンな言語を楽しめばいいと思う



530:デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
17/01/11 09:10:55.73 TTvERX8La.net
はい、解散、解散
お前ら元気でな

531:デフォルトの名無しさん (ワッチョイ 5b3c-HvS5)
17/01/11 09:13:22.53 853Dbb3u0.net
メーリングリストには残る予定とのこと
URLリンク(lists.swift.org)

532:デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)
17/01/11 09:36:15.32 5OhI584zp.net
ネタかとお前らマジだった
3でABI安定させてiOS組み込みランタイムにできてりゃまだこうはならなかったろうに

533:デフォルトの名無しさん (ササクッテロロ Sp3f-OZpM)
17/01/11 10:22:04.51 6QBqeohxp.net
Appleがテスラ買収したら面白いのに

534:デフォルトの名無しさん (ワッチョイ 5f32-l80d)
17/01/11 12:28:02.16 3A3Blea/0.net
自動運転がホットな分野ってことが分かる出来事だな……
CarPlayとテスラの自動運転がガッツリ融合みたいな感じになったりするのかね

535:デフォルトの名無しさん (ワッチョイ dfc9-f1yY)
17/01/11 12:39:27.51 RGh2RgBv0.net
ラトナーがテスラでSwift製のTensorFlow級機械学習ライブラリのプロジェクト立ち上げるフラグ?

536:デフォルトの名無しさん (ワッチョイ 2b91-P21V)
17/01/11 12:46:25.80 hbAKDMBg0.net
それでSwift Package Managerから使える3rd party libraryが増えるなら歓迎したいな
コアライブラリ(Foundation)が貧弱でも、外部ライブラリが充実してるならreadlineみたいな問題も起きぬ
go, rust, nodejsなんかは外部ライブラリもパッケージマネージャーも枯れてるのに
Swiftは未だにパッケージマネージャーが実用品質まで実装されていないのはホントくそだぜ

537:デフォルトの名無しさん (ササクッテロロ Sp3f-+flj)
17/01/11 13:25:01.52 El817HeFp.net
今後もバリバリコード書くのか?テスラの自動運転ソフトの副社長ってもう管理職じゃないの
いずれにしてもSwiftにはさじを投げた?

538:デフォルトの名無しさん (オイコラミネオ MMff-+flj)
17/01/11 17:08:20.22 h4pP9InkM.net
ああ、LattnerがいないSwiftの進化なんて…
オープンコミュニティといえ、元締めは彼だろ

539:デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
17/01/11 17:33:41.40 NWO+SBAfa.net
かつてのボーランドからマイクロソフトへチーフアーキテクトが引き抜かれて、衰退していったDelphiと同じ運命を辿るのか

540:デフォルトの名無しさん (ササクッテロラ Sp3f-/ZRc)
17/01/11 17:53:48.76 5OhI584zp.net
次はAppleが
企業がリーディングする必要がないほどに成長した
Swiftはコミュニティベースの開発に移行する
とか言って切り離すフェーズだなw
その時は流石にIBMは泣いていいと思う

541:デフォルトの名無しさん (ワッチョイ 6f13-q3aP)
17/01/11 19:07:19.36 AM+tjFEn0.net
gasgas
歌舞伎座.tech#13「Elixir 勉強会」
2017/01/11(水) 開場:18:57 開演:19:00  ニコニコ生放送
lv286846512

542:デフォルトの名無しさん (ワッチョイ 6f5b-9Pqs)
17/01/11 19:48:30.44 ql+say3+0.net
>>528
オープンソース化はこの伏線だったのかな
というかすでにコミュニティベースの開発に移行してるんじゃなかったっけ?

543:デフォルトの名無しさん (スッップ Sdff-+flj)
17/01/11 20:20:46.67 vol/OZGBd.net
これはSwiftが進化するフラグなのか
Swiftが廃れるフラグなのか

遅延評価だな

544:デフォルトの名無しさん (アウアウウー Sa3f-yz8t)
17/01/11 20:53:57.18 jVlnEIwOa.net
うまいこと言ったつもりなの?

545:デフォルトの名無しさん (ワッチョイ 5fc9-tEgc)
17/01/11 22:21:38.06 H1aLMscd0.net
Swiftがオープンソース化した本当の理由は退職への布石だったか。
業務中に開発した物は権利も含めて置いてけって言われるからな。

546:デフォルトの名無しさん (ワッチョイ ab8f-S2pU)
17/01/11 22:2


547:2:31.15 ID:6a0oW3vG0.net



548:デフォルトの名無しさん (スッップ Sdd2-GRi3)
17/01/12 02:42:00.89 aguNSWiGd.net
Swift愛が強いやついるよな
何がそんなにいいのかわからんけど

549:デフォルトの名無しさん (ワッチョイ bbba-f8hU)
17/01/12 04:11:52.57 NO1D7SqU0.net
仕様が固まったらswift勉強しようと思ってたのに
勉強する前に終わりが来てしまった…
もう駄目なん?

550:デフォルトの名無しさん (ワッチョイ be5b-GRi3)
17/01/12 04:53:25.74 HEZQC1GR0.net
結局AppleがSwiftゴリ推してたからSwiftやるかってなってただけで、別に言語自体に魅力があるかっつうと微妙な言語だからなぁ

551:デフォルトの名無しさん (ワッチョイ d315-+/No)
17/01/12 10:11:11.64 hrKw0WqE0.net
ゴリ推し君、久しぶりだな
お前の天下だぞ、やったなw
>>534
それはもう実現されたろ
誰もありがたがらないから取り上げられないだけで

552:デフォルトの名無しさん (ワッチョイ 9232-ZP+f)
17/01/12 11:03:11.47 HIZRXgmf0.net
>>534
JavaにAOT入ってくるし余りSwiftの優位性がないんじゃないかなぁ
GoogleとしてはGolangの方を推すだろうし

553:デフォルトの名無しさん (スップ Sdf2-vkEW)
17/01/12 12:16:49.20 fxxdnJ+zd.net
>>539
優位性はoracleに訴訟起こされないことなので
googleだからとgolang推すとは限らない

554:デフォルトの名無しさん (スプッッ Sdf2-MRNU)
17/01/12 12:20:15.98 ZbEfheT4d.net
正直、普通にpythonの方が良かったな

555:デフォルトの名無しさん (ササクッテロレ Sp37-rG+u)
17/01/12 13:18:05.94 bePo0qAjp.net
>>539
AOTはとっくに入ってるけど、それでも頭打ちになって、
AOT+JITハイブリッドに進んでいる

556:デフォルトの名無しさん (JP 0Hf2-dHfL)
17/01/12 15:07:06.54 UlDpgnikH.net
どうなると思う?

557:デフォルトの名無しさん (ワッチョイ f38f-JEwG)
17/01/12 19:27:11.74 MO5zZFfW0.net
>>539
golangはエコシステムが素敵なだけで
better c感があるからなぁ。
正直ジェネリクスが入るまではあんまりアンドロイド向けにはならない気も。だってjavaみたいな抽象化ブログラミング苦手っしょ

558:デフォルトの名無しさん (ワッチョイ d315-+/No)
17/01/12 19:51:13.69 hrKw0WqE0.net
Javaみたいな抽象化プログラミング(OOP至上主義プログラミング)がクソって風潮で
GoやRust(あと一応Swiftも)の言語仕様が切られてるんだけどな
ジェネリクスはどうでもいいわ、あれば使うけど、なくても死ぬわけでもなし

559:デフォルトの名無しさん (スップ Sdf2-vkEW)
17/01/12 20:03:43.81 fxxdnJ+zd.net
OPP最高

560:デフォルトの名無しさん (ワッチョイ f38f-JEwG)
17/01/12 20:04:28.76 MO5zZFfW0.net
>>545
抽象化プログラミングの否定ではなく
関数型プログラミングへの注力ってだけでしょ。抽象化は必要な技術であることには変わらない。
RxSwiftとか触ってると抽象化が得意な言語上で作られたFrameworkの便利さには感動する。
んで、golangはそういうのが苦手で、
どうしてるかと言うと、コードジェネレータを作ったりしてるw
正直そういう部分がアンバランスな感じなので、はよジェネリクスくれってなってる。

561:デフォルトの名無しさん (ササクッテロラ Sp37-gjPF)
17/01/12 20:21:07.84 EuCQnJSXp.net
zero cost abstractionを心がけたからじゃね?
C++テンプレート含めて動作性能求めてコードジェネレータは当然の結果
JavaやSwiftはそのコストなんて気にしてないけども

562:デフォルトの名無しさん (JP 0Hf2-dHfL)
17/01/13 10:56:53.83 A7lO7PxRH.net
Swift無くなるの?

563:デフォルトの名無しさん (スッップ Sdd2-GRi3)
17/01/13 10:59:55.55 knpjVG01d.net
Appleの中にSwiftに本気の人がいなくなったってだけでしょ

564:デフォルトの名無しさん (スプッッ Sdd2-vkEW)
17/01/13 11:01:08.52 zzZzBy0Od.net
腐ったリンゴから解放されて世界に羽ばたくよ

565:デフォルトの名無しさん (オイコラミネオ MMce-kkJw)
17/01/13 16:06:30.15 qq8NhLIPM.net
詳解Swift第3版読み終わったらけど、delegateの説明が一切なかった。
delegateとprotocolの違いって何?

566:デフォルトの名無しさん (ワッチョイ 573c-dHfL)
17/01/13 17:55:00.38 le1wMpNu0.net
大まかに言えばコールバック用のprotocolを実装したインスタンスをdelegateと呼んでるだけ
技法や用語の類なので言語仕様と直接の関係は無いよ

567:デフォルトの名無しさん (ワッチョイ 92e5-kkJw)
17/01/13 18:32:25.12 cenlIzEl0.net
>>553
ありがとう😊

568:デフォルトの名無しさん (ワッチョイ d35b-lDPz)
17/01/13 19:41:22.91 6sCHka4P0.net
>>552
delegateの話は無しなのかぁ。
まあ、UIKit、AppKitの話だからなぁ。

569:デフォルトの名無しさん (ワッチョイ be5b-GRi3)
17/01/14 02:00:38.21 zbDc0ypE0.net
AppleがSwiftを切っても使い続けたいと思うならまともな言語といえるのだろう

570:デフォルトの名無しさん (ブーイモ MM8b-0NVw)
17/01/17 12:02:14.54 cEkG7JbvM.net
テスラのファームウェアがSwift製になるのか
ますます日本人のトヨタ離れが加速するな

571:デフォルトの名無しさん (JP 0Hf2-dHfL)
17/01/17 15:24:26.60 BOj3HsKUH.net
で、Swift無くなるの?

572:デフォルトの名無しさん (ササクッテロラ Sp37-gjPF)
17/01/17 16:31:46.31 eAAsiKtXp.net
swiftってファームウェアが書けるほど低レイヤーで動けるのかいな
LinuxないしmacOS, iOS上のソフトウェアに留まりそう
まぁそれでもテスラ上の開発がswiftになるならこれほど胸熱なニュースはswift史上にないな(そうなるとは思ってない

573:デフォルトの名無しさん (ワッチョイ 0353-0NVw)
17/01/17 17:18:09.57 KCosYzOz0.net
いや、CとSwiftの併用でいくと思う
というかビットバイトレベルの操作はCが一等書きやすいのは今後も変わらん
Swift登場後はポストCはどの言語かという議論はナンセンスだと思うわ

574:デフォルトの名無しさん (ワッチョイ 0353-0NVw)
17/01/17 17:47:17.45 KCosYzOz0.net
実のところSwiftに熱くなれるのはiOSシェア50%強の日本だけ
日本にいると気づきにくいが他の国ではそもそもSwiftを走らせる機会に乏しいのだ
サーバーサイドでもGo、node.jsやJavaを差し置いてSwiftを採用するメリットは現状乏しい
ラトナーは日本人のオタクばっかりが飛びついてバカッターであることないこと吹き回ってる現状を前に
未来への展望が見えなくなってしまったのかもしれない
もしかしたらSwiftが流行るかどうかは日本人次第と言えるかもしれない
Swiftはラトナーから日本人への置き土産だったのだ

575:デフォルトの名無しさん (ワッチョイ 0353-0NVw)
17/01/17 17:53:53.67 KCosYzOz0.net
バカッターで本質的でも建設的でもないことで熱くなっている日本人を前にして
ラトナー「やべえ一番面倒なお客さんに好かれちまった・・・この言語もうだめだわ」
となったに違いない。俺ラトナーの気持ちよくわかるわ

576:デフォルトの名無しさん (ワッチョイ d3c9-pk1x)
17/01/17 18:00:12.82 1PLMnPDO0.net
>>561
飽きるのも速いからな

577:デフォルトの名無しさん (ワッチョイ f34e-TjL7)
17/01/17 18:01:11.31 1+zZwnvK0.net
>>562
一瞬、「置き土産」をポジティブに捉えてるのかと思ったよ

578:デフォルトの名無しさん (ワッチョイ 0353-0NVw)
17/01/17 18:22:17.10 KCosYzOz0.net
>>564
いやまあ適当におもしろおかしく書いただけなんで俺の意思は上のレスのどこにもないよ

579:デフォルトの名無しさん (スッップ Sdd2-0Plu)
17/01/17 18:57:54.94 N7dBiTg5d.net
>>560
ビット、バイトの操作はアセンブリ言語の方が楽。

580:デフォルトの名無しさん (ワッチョイ 0353-0NVw)
17/01/17 19:02:14.58 KCosYzOz0.net
>>566
楽が何を指してるのかわからんがアセンブリでARMからx86まで対応したコード書く気ですか

581:デフォルトの名無しさん (ブーイモ MM8b-0NVw)
17/01/17 19:16:55.24 cEkG7JbvM.net
IBMは動揺しただろうか
軽く社運賭けてそうだったもんな

582:デフォルトの名無しさん (ワッチョイ 72c9-lDPz)
17/01/17 19:45:51.46 94EBDj3G0.net
そもそも発表後はラトナーそんなにコード書いてない
メーリスでも発言が頻繁だったわけでもない
Swiftはとうにラトナーの手を離れて歩きだしてる

583:デフォルトの名無しさん (ワッチョイ f38f-JEwG)
17/01/17 20:39:45.87 L9ZJiwd40.net
rustの真似してARCやめようとしてるのもテスラで動かすための布石だったりして

584:デフォルトの名無しさん (ワッチョイ 12cf-kkJw)
17/01/17 21:00:56.60 cY3pxmYi0.net
ていうか、単にcocoa系APIは専用の呼び出しサポートして終わり、で良かった気がするんだけどねぇ。
それなら、よそのAPI取り込み選択肢があったのにねぇ。

585:デフォルトの名無しさん (スプッッ Sdf2-k0Ff)
17/01/17 21:29:33.05 diZtCuN9d.net
流れぶったぎってすまないが、演算子で???とか!!ってあったっけ?サーチエンジンで検索できないんだよね

586:デフォルトの名無しさん (ワッチョイ 72c9-lDPz)
17/01/17 22:46:01.20 94EBDj3G0.net
無いっしょ

587:デフォルトの名無しさん (スプッッ Sdf2-k0Ff)
17/01/18 11:32:43.43 QZC6aztod.net
どっかで見た気がしてた、ありがとう

588:デフォルトの名無しさん (ワッチョイ 573c-dHfL)
17/01/18 14:04:31.66 mYaS/Vd70.net
演算子では無いけど書けるかどうかなら一応可能
実用コードで見掛けることは無いだろうけど
let a = Optional(Optional(Optional(0)))
let aa = a???.hashValue
let b = Optional(Optional(0))
let bb = b!!

589:デフォルトの名無しさん (ササクッテロリ Sp37-gjPF)
17/01/18 18:04:04.22 I9cdn/V3p.net
rustの真似事は無理じゃないかなぁ
rustスレに遊びに来た荒し、数時間で挫折したぞ
borrow checkerはARCより死ぬほど扱いが難しい
その割りにARCと実動作に大差ないからメリットが少ないって冷静に判断されそう

590:デフォルトの名無しさん (ワッチョイ d35b-lDPz)
17/01/18 21:45:54.00 LJhKuLVS0.net
>>572
Swift Standard Library -> Swift Standard Library Operators

591:デフォルトの名無しさん (ワッチョイ f642-dHfL)
17/01/18 21:46:51.93 fhQVy3CG0.net
>>576
それは言語として威張れるところか?w

592:デフォルトの名無しさん (ワッチョイ f34e-TjL7)
17/01/18 21:53:24.02 B+OX1k7v0.net
borrowチラっと見たけどややこしいな
ownershipで考えるからややこしいんだろ
reference countのARCのがシンプル

593:デフォルトの名無しさん (ササクッテロリ Sp37-gjPF)
17/01/18 22:18:00.91 I9cdn/V3p.net
>>578
一応、「nilsafeだから安全(笑)」とswiftを馬鹿に出来るくらい不正ポインタアクセスに対して安全だから、、、
その代償のコーディング難易度がくっそ高いから日曜プログラマがちょっと遊びでには向かない
まぁ、業務にもその難易度のせいで上流行程へ採用提案しづらいんだけど
要は、日曜プログラマに愛されて、アポー信者の上流行程を騙しやすいswift最強ってこった

594:デフォルトの名無しさん (ワッチョイ 72c9-lDPz)
17/01/18 22:56:42.20 g+H+g1Pr0.net
RustでもOption使うだろ

595:デフォルトの名無しさん (ワッチョイ c33c-3qL8)
17/01/19 07:59:17.73 FKxmZ7fp0.net
Swiftのメモリ管理 ≒ C++のshared_ptr/weak_ptr
Rustのメモリ管理 ≒ C++のauto_ptr(暗黙move, unique_ptrの先代)
Rustのborrowingはauto_ptr::getとほぼ同じ
ただし解放されたものを参照しないようlifetimeの手厚いサポートがある
ARCの方がコーディングは楽だろうけど
Rust方式は渡したものを保持して遅延使用するのか
関数から戻った時点で使い終わってるのかを
言語レベルで扱えたりするから一長一短ではある
まぁSwiftにもクロージャに関しては@escapingがあるけど

596:デフォルトの名無しさん (ワッチョイ ffc9-mu6I)
17/01/19 20:32:11.50 VasCiZ4n0.net
Swift/ObjCのARCはshared_ptr/weak_ptrと同じ
ただ、SwiftはKotlinのoptional, Rustのif letを言語仕様でパクってあってコーディングが楽
この部分だけObjCにバックポートしたら便利なんじゃね?とふと思った
__nullable, __nonnullとか微妙なキーワードによるバックポートは正直使いづらい

597:デフォルトの名無しさん (アウアウオー Sadf-WaXM)
17/01/19 22:19:36.62 w+bE5wHza.net
そうですね

598:デフォルトの名無しさん (オイコラミネオ MMff-Taza)
17/01/20 15:40:14.18 ZOjl9uXaM.net
型推論をプログラミング知識が乏しい人に説明するなら、どんな隠喩がいいと思う?

599:デフォルトの名無しさん (アウアウオー Sadf-WaXM)
17/01/20 16:00:12.37 is3Fha3pa.net
アヒルみたいな顔してお尻フリフリ歩いてグワッ、グワッて鳴く鳥がいたら、もうそれアヒルってことでいいよね
って感じでいいんじゃね

600:デフォルトの名無しさん (JP 0H87-Taza)
17/01/20 16:35:51.58 6bMM3T6GH.net
うわっ!これガチョウだ!!

601:デフォルトの名無しさん (アウアウオー Sadf-WaXM)
17/01/20 17:08:41.66 is3Fha3pa.net
などと、コンパイルエラーが出たら明示的に宣言してね
ということで

602:デフォルトの名無しさん (スップ Sd1f-ddg/)
17/01/20 18:43:31.96 2Wi9HN+wd.net
>>585
男か女か解らない人がいるんだけれど、喉仏が出ているから、男って事で。

みたいな?

603:デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)
17/01/20 19:05:32.26 4nNA4c16p.net
「おまじない」が古くから由緒ある陰語
実際問題、プログラミング知識が乏しいと
型推論と型宣言と動的型を区別できないから説明省いて良いと思う

604:デフォルトの名無しさん (ワッチョイ 738f-ILNu)
17/01/20 22:51:19.05 /kNqqxub0.net
いやいやそれくらいコンパイラ側が自動で型を推測してよってツッコミを入れていたところが解決した

605:デフォルトの名無しさん (アウアウオー Sadf-WaXM)
17/01/20 23:13:59.78 sVl+H8Xfa.net
それは良かった

606:デフォルトの名無しさん (アウアウオー Sadf-WaXM)
17/01/20 23:59:07.88 sVl+H8Xfa.net
a = b = c = 0
って感じで同じ型の変数に値を一気に代入できないのは不便だよね

607:デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)
17/01/21 01:50:38.98 d82h9KNNp.net
そうですね

608:デフォルトの名無しさん (ワッチョイ 6f5b-JNK/)
17/01/21 01:51:05.02 W/zpHkC+0.net
だってSwiftだもの

609:デフォルトの名無しさん (ササクッテロロ Sp87-UhX6)
17/01/21 02:08:12.56 wL4zqwoRp.net
みつを来てんね

610:デフォルトの名無しさん (オッペケ Sr87-+PXi)
17/01/21 19:37:18.34 aueqPNmbr.net
>>582
つまりc++が最強?

611:デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
17/01/23 21:45:03.95 RV5yVqC70.net
初見なんだけどココ、NewB的な質問もOkなトコロ?

612:デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
17/01/23 21:59:18.58 RV5yVqC70.net
>>598だけど返事待つのもあれだし、質問するわ。ちょっと説明しづらいんだけど
例えばビューのカスタムクラス作って、そこのポップアップボタンとかのアイテムにセレクターつけるとするじゃん。
そんでそのクラスのインスタンスをペアレントのビューに複数おいてどれかのアイテムクリックすると、
別のインスタンスのセレクタが呼ばれちゃわね?二つ目のインスタンスのボタン押したのに、一つ目に反映されたりする。
このカスタムクラス複数インスタンス化においてのNotificationとか、selectorとかで困ってんの、どうやって回避する?

613:デフォルトの名無しさん (アウアウオー Sadf-WaXM)
17/01/23 22:05:37.88 WrhQGC6sa.net
ちょっと言ってる意味がわからないけど
俺のエスパー能力が正確なら、Outlet Collectionでググるといいかもしれない

614:デフォルトの名無しさん (アウアウオー Sadf-WaXM)
17/01/23 22:06:59.56 WrhQGC6sa.net
いやなんか違うような気がするな
やっぱエスパーさんの登場を待とう

615:デフォルトの名無しさん (ワッチョイ f35b-jh1Y)
17/01/23 22:11:15.46 Llx+8S3H0.net
>>599
俺も何いってるのか?
さっぱりだわぁ

616:デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
17/01/23 22:26:13.92 RV5yVqC70.net
すげーリプはえーやばい。
ググってくるわーthx

617:デフォルトの名無しさん (ワッチョイ 33a1-U6eW)
17/01/23 22:26:58.66 sPzCf4bI0.net
Notificationの、selecterとnameちゃんと使い分けてる?

618:デフォルトの名無しさん (ワッチョイ c33c-3qL8)
17/01/23 22:29:39.75 Ws+iSkNs0.net
>>599
UIViewControllerでなくUIViewを継承

619:デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
17/01/23 22:35:00.65 RV5yVqC70.net
>>604
NSMenuItemからいくと、postじゃなくてaction限定になってるんじゃないかな?限定的でスマソンだけど
>>605
OSXでNSViewを継承

620:デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
17/01/23 22:44:47.72 RV5yVqC70.net
>>604
あとNameもインスタンスだと同じになって別のインスタンスが呼ばれちゃう。
でもこれは登録する時にNameにインデックスとか何らかIDつけると回避できそうな気がするけど、メニューアイテムだと
menu?.addItem(NSMenuItem.init(title: name , action: #selector(selected(_:)), keyEquivalent: ""))
みたいな感じで付け入る隙がないんだ

621:デフォルトの名無しさん (ワッチョイ 6f5b-JNK/)
17/01/23 22:54:40.36 wkYluZkM0.net
Swiftの字面の汚さは慣れないなやっぱり

622:デフォルトの名無しさん (ワッチョイ c33c-ddg/)
17/01/23 23:00:43.39 d7Gq4/N70.net
>>599
「ポップアップボタンとか」の「とか」は、「ポップアップボタン」以外の何?
そもそもAppleは、ポップアップボタンなんてものは提供していないがな。
それにiOSでは、クリックなんかはできない。
HumanInterfaceGuidelinesを読み直して出直した方が良いな。

623:デフォルトの名無しさん (ワッチョイ 9339-u5as)
17/01/24 00:55:51.35 exkLo0yv0.net
文字とかって Character と CChar とあるみたいだけど、
こういうことしたい時はどうすればいいんでしょう
Cで
for(i = 'a'; i <= 'z'; i++){
putchar(i & 0x5f);
}
putchar('\n')
みたいなのを swiftで書く場合って…
for i in ???...??? {
もうわからん
}

624:デフォルトの名無しさん (アウアウオー Sadf-WaXM)
17/01/24 01:24:22.63 6XEtipUUa.net
なんでそんなことしたいのか知らんけど
くんな感じ?
for ch in "a".utf8.first!..<"z".utf8.first! {
print(Character(UnicodeScalar(ch & 0x5f)))
}
もっとスマートな書き方があるかも知らん

625:デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
17/01/24 01:33:52.81 7WmLdbGx0.net
>>610
let str = "abcdefghijklmnopqrstuvwxyz"
for c in str.characters{
print(c)
}
がんばれ

626:デフォルトの名無しさん (アウアウオー Sadf-WaXM)
17/01/24 01:43:19.82 6XEtipUUa.net
>>612
それ文字列の中を順に表示してるだけじゃん

627:デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
17/01/24 01:56:29.31 7WmLdbGx0.net
>>612
これ何で大文字になんの?

628:デフォルトの名無しさん (ワッチョイ bf8c-GzBV)
17/01/24 01:57:25.69 7WmLdbGx0.net
>>614
>>611の間違い

629:デフォルトの名無しさん (アウアウオー Sadf-WaXM)
17/01/24 02:07:07.07 6XEtipUUa.net
それはAsciiコードがそうなってるから...

630:デフォルトの名無しさん (アウアウオー Sadf-WaXM)
17/01/24 02:10:03.40 6XEtipUUa.net
大文字にするだけならこっちの方がいいか
for val in UnicodeScalar("a").value...UnicodeScalar("z").value
{
print(String(format: "%c", val).uppercased())
}

631:デフォルトの名無しさん (スッップ Sd1f-JNK/)
17/01/24 02:22:36.10 kY6N+f51d.net
>>611
クッソ読みにくいな
さすがSwift()だわ

632:デフォルトの名無しさん (ワッチョイ c33c-ddg/)
17/01/24 05:59:43.55 odFyaWZN0.net
>>616
何だ?Asciiコードって。
SUICAカード
電球の球
頭痛が痛い
地震が揺れた

633:デフォルトの名無しさん (ワッチョイ 9339-u5as)
17/01/24 07:47:42.37 exkLo0yv0.net
ありがとう
>>611
ワイの求めていたものに近い
見てたら意味的には
>>617のがよさげ
別に小文字を大文字にしたいわけじゃなくて
文字コードを数値で扱いたく
かつ数値を文字にしたかった
例えば大量のテストデータを自動生成するとか
発想が Cなので、そういうやり方しか思いつかないんだけど
手段にたどりつけないで試行錯誤してます

634:デフォルトの名無しさん (ワッチョイ 9339-u5as)
17/01/24 07:50:49.58 exkLo0yv0.net
>>612
それは思いついたけどスマートじゃないと思った
例えばその "a-z" の文字列を生成したい時にどうするかというのが気になった
Cなら例えば
atoz = malloc('z' - 'a' + 2);
p = atoz;
for(c = 'a'; c <= 'z'; c++) {
*p++ = c;
}
*p = 0
ってできるじゃん
それを "abc...z" って26文字ぐらいならベタで書けるけど
これを "aa"~"zz"までとか量が増えて行ったら
ベタでは書けないなぁとか。
てかなんで for ch in 'a'...'z' って書けないんだよ
それぐらいやらせてくれよ

635:デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)
17/01/24 10:19:40.46 PbjuVM+3p.net
aからzが子文字のみの昇順で並ぶ保証がないから
万が一、将来AaBbC...yZzって並ぶ文字コードが世界標準になったら
'a'...'z'が書ける言語仕様にしてたらどうすればいいか分かんないじゃん
これは極端な例だけど、要はそういう不意の事象に耐える意識高い言語仕様にswiftはなってる

636:デフォルトの名無しさん (アウアウオー Sadf-WaXM)
17/01/24 10:32:22.93 8WMehL2Va.net
いやもう文字コード決まってんじゃんw
今更文字コード変えられたら、どっちみちコンパイルし直しになるし
どんだけ既存のプログラムに影響出るんだよw

637:デフォルトの名無しさん (ワッチョイ ff4c-Taza)
17/01/24 10:52:16.06 bcJOEpSP0.net
ASCII知らないのか

638:デフォルトの名無しさん (ワッチョイ c33c-3qL8)
17/01/24 11:01:02.71 HBr+KooL0.net
>>620
>文字コードを数値で扱いたく かつ数値を文字にしたかった
一応部品化すれば本処理部分は多少は見やすく・・・
func irange(_ a:UnicodeScalar, _ b:UnicodeScalar) -> CountableClosedRange<UInt32> {
  return a.value...b.value
}
func nchr(_ a:UInt32) -> UnicodeScalar {
  return UnicodeScalar(a) ?? "?"
}
for i in irange("a", "z") {
  print(nchr(i & 0x5F))
}

639:デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)
17/01/24 11:16:48.70 PbjuVM+3p.net
ソースファイルの文字コードとランタイム内の文字コードは別に考えろよ
ソースファイルの話ならjavac -encodingみたいに対応すればいい
ランタイム内はそれが変動出来るようにString.utf8やUnicodeScalarがある
ソースファイルの文字コードに影響されるってC言語かよw

640:デフォルトの名無しさん (ワッチョイ 335b-wAZW)
17/01/24 12:08:53.72 gy8Md2CU0.net
文字列は魔境

641:デフォルトの名無しさん (アウアウオー Sadf-WaXM)
17/01/24 12:14:47.00 8WMehL2Va.net
ソースファイルにしろランタイムにしろいきなり文字コード体系が変わってもらっちゃ
どんな言語だって困るだろ
文字コードの大小に依存してるコードなんてごまんとあるぞ

642:デフォルトの名無しさん (ワッチョイ c33c-M+yL)
17/01/24 17:34:40.36 +WwPKdrl0.net
日本語が不自由だとか勘弁してくれよ。
URLリンク(kotobank.jp)

643:デフォルトの名無しさん (ワッチョイ 9339-u5as)
17/01/24 19:57:41.91 exkLo0yv0.net
>>625
イイね
ただ大文字化したいというよりは
こういった基本的な処理を身に着けたい
今まで Cや Perlでやってたことが
swiftでもできたらなぁって感じ
できないと俺の寿命がストレスでマッハ

644:デフォルトの名無しさん (スッップ Sd1f-JNK/)
17/01/24 21:29:28.75 6Rgy6vgTd.net
最近の言語だとPythonは読みやすくて覚えやすくていい文法してると思う

645:デフォルトの名無しさん (アウアウウー Sa67-WaXM)
17/01/24 21:47:34.41 KTC1YGyNa.net
Pythonが最近の言語なわけないだろ

646:デフォルトの名無しさん (ワッチョイ a3d4-hfv1)
17/01/24 22:31:37.74 GRF78Bhf0.net
Pythonは3で死んだ

647:デフォルトの名無しさん (ワッチョイ cf42-3qL8)
17/01/24 22:35:46.17 L2GKKZjf0.net
死んだの?

648:デフォルトの名無しさん (ワッチョイ a3d4-hfv1)
17/01/24 22:50:13.02 GRF78Bhf0.net
俺が死んだ

649:デフォルトの名無しさん (ワッチョイ ffc9-NwiU)
17/01/24 23:30:23.92 Khh2743H0.net
UnicodeScalarを拡張してしまえばいいのでは
extension UnicodeScalar : Strideable {
  public func advanced(by n: Int) -> UnicodeScalar {
    return UnicodeScalar(self.value.advanced(by: n))!
  }
  public func distance(to other: UnicodeScalar) -> Int {
    return other.value.distance(to: self.value)
  }
}
extension UnicodeScalar : BitwiseOperations {
  public static var allZeros: UnicodeScalar = UnicodeScalar(UInt32.allZeros)!
  public static func &(lhs: UnicodeScalar, rhs: UnicodeScalar) -> UnicodeScalar {
    return UnicodeScalar(lhs.value & rhs.value)!
  }
  public static func ^(lhs: UnicodeScalar, rhs: UnicodeScalar) -> UnicodeScalar {
    return UnicodeScalar(lhs.value ^ rhs.value)!
  }
  public static func |(lhs: UnicodeScalar, rhs: UnicodeScalar) -> UnicodeScalar {
    return UnicodeScalar(lhs.value | rhs.value)!
  }
  public static prefix func ~(rhs: UnicodeScalar) -> UnicodeScalar {
    return UnicodeScalar(~rhs.value)!
  }
}
for c in UnicodeScalar("a")...UnicodeScalar("z") {
  print(c & UnicodeScalar(0x5f)!)
}

650:デフォルトの名無しさん (アウアウウー Sa67-WaXM)
17/01/25 08:50:03.50 WD3nSRWWa.net
うっわめんどくせ
もうC言語でいいわ

651:デフォルトの名無しさん (エムゾネ FF1f-JNK/)
17/01/25 09:06:42.63 Xv7wslg5F.net
>>637
基本読みにくいんだよなSwift

652:デフォルトの名無しさん (ワッチョイ c33c-3qL8)
17/01/25 10:23:43.05 2+5m68360.net
>>636
結局リテラルがアレなんだよな
型指定しないとStringになるから俺はStrideable断念して引数使ったけど
シングルクォートのリテラルを言語仕様に入れなかった理由がよく分からない

653:デフォルトの名無しさん (ササクッテロリ Sp87-/mpU)
17/01/25 10:39:46.63 +ZiK5CtYp.net
シングルクォート = UnicodeScalar で言語仕様切るとUnicodeに引っ張られるからでは
古い言語にならってASCIIを想像する人もいれば、今時ならUTF8だと想像する人もいるだろうし、フレームワークに合わせてUnicodeと言う人もいる
落とし所のない不毛な議論が目に見えるから、検討したけど削除した仕様な気がする


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