Swift part12
レス数が1000を超えています。これ以上書き込みはできません。
!extend::vvvvv
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう
関連スレ
プログラミング言語Swift Part4
http://egg.2ch.net/test/read.cgi/mac/1484763495/
[SDK]iPhoneアプリ開発初心者質問箱49[touch][iPad]
https://egg.5ch.net/test/read.cgi/mac/1538778915/
Xcode part14
http://egg.2ch.net/test/read.cgi/mac/1476190499/
Swiftアンチスレ part1
http://mevius.2ch.net/test/read.cgi/tech/1458491343/
前スレ
Swift part11
https://mevius.5ch.net/test/read.cgi/tech/1498640309/
スレ立て時は1行目に「!extend::vvvvv」
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured Sex
With
Intelligence
Female
Trading swiftで人数を入力するとトーナメント表を作るアプリを作りたいのですが、どのようなアルゴリズムで表を描画するイメージになるのかわかる方教えて欲しいです。 「dendrogram drawing algorithm」で検索 タプルの要素数を動的に宣言することは可能ですか?
例えばある変数が2だとしたら、タプルの中身が("","")というように宣言したいのです。 iphoneとipad両方の両方をターゲットに開発する場合、UIはストーリーボードではなく、コーディングで作る方が一般的でしょうか? >>7
いいえ、また、iphoneとipod用でstoryboardをわけることもできるよ >>13
いいえ、また、僕と君とで素敵なナイトストーリーを刻むこともできるよ NSDate型をDate型に変換する方法を教えて欲しい
NSDate as Dateじゃダメみたい import Foundation
let a:NSDate = NSDate()
let b:Date = Date(timeIntervalSinceReferenceDate: a.timeIntervalSinceReferenceDate)
let c:NSDate = NSDate(timeIntervalSinceReferenceDate: b.timeIntervalSinceReferenceDate)
print(a, b, c) Storyboardのがめんでボタンとかビューとか全部に薄い紫の枠がついちゃったんだけどどうやって消すの?
デバッグ用のなんかなのかな? publicクラスかpublic構造体を含んだオブジェクトファイルを
clangでsharedライブラリにしようとすると
リンクエラーを吐き出してしまいます
relocation R_X86_64_PC32 against protected symbol `XXX' can not be used when making a shared object
`XXX'の部分↓
T016モジュール名???クラス名CMa
T016モジュール名???構造体名VMa
どうすれば… 絶対に挫折しないiPhoneアプリ開発みたいな本読んで8章までは理解して進めたんだけど9章から理解できない
二冊目の本を教えて欲しい
習ったことはxcodeの基本的な使い方とか
classとかプロトコルとかデリゲートとかについて超基礎的なとこまでは習った 本は有ってもいいけど手を動かそう
・ググってHello world
・エラーが出たらエラー内容でググる
・必要ならChrome標準のページ翻訳や各ブラウザのページ翻訳アドオンを使う
・やりたいことを単語に分解してググる
・バージョン管理ツール導入
・リファレンスやソースを漁る
swiftdoc.org (Appleのリファレンスでも良い)
github.com/apple/swift
github.com/apple/swift-corelibs-foundation
・知識や理解の隙間を埋めるための本を探す >>23
作りたいAppを作りはじめたほうが勉強になるよ、おすすめ 作りたいAppの設計が破綻していることもままあるから
最低限のこと分かったらどんどん作って検証した方が吉 >>23
もしかして、絶対に挫折しないとかいう本を高度にディスってるのか! すみません、教えてください。
ある画面はstoryboard、ある画面はコーディングでUIを実装、というのは可能ですか? NavigationBarControllerを追加してもBackボタンが表示されないんですが,どうしたらいいでしょうか?
2つ画面を作り,片方のボタンを押したらもう1つに遷移し,画面上部にバックボタン付きナビゲーションバーを出したいのですが… >>30
1つ目の画面の前にUINavigationControllerを配置する >>31
回答ありがとうございます。ストーリーボードで作った画面にコーディングでUIオブジェクト追加するというのも可能でしょうか? 開発したアプリはAppleの開発者年間会員になっていなくても自分の端末(ipadとiphone)に入れて起動することはできるの? うん。テストだから期間は短いけどな。際ビルドしてインストールすればいいけど。Pushとか使えないのもある テスト用だからアプリ起動できる期間は短いけどな(1週間だったか2週間だったか1ヶ月だったか)。再ビルドしてインストールすればいいけど
なんかすまんw >>40 pythonista で、iOSのアプリがチョロチョロと開発できるようになったのは大きいんじゃないの?
Swift は、言語としては面白いと思ったし生まれてから2年位練習してたことがあるけど、引っ越しと同時に開発環境をダンポールから出していないからそれっきりになってた。
敷居が高い。
pythonista は、2月に入ってから始めたが、中々使えそう。GUI アプリも簡単に作れるしね。
OBJ-C が丸々使えるのも大きい。
これなら家庭内の家電コントロールもやって見ても良いかなと思ってる。 swiftでできることはpythonistaで全部できる? >>42 もちろん全部ではないが、結構大抵のものはできそう。
ただ、作ったアプリをストアに登録はできなさそうだが。 最初の頃はできてたらしいけど最近は例がないみたい。
でも自分で遊ぶ分には十分。
起動して終わるときにインタプリタ画面が残ってたり、格好悪いとは思うが、個人用なら許せる。 これも何か方法はあるとは思うけど。 開発環境を段ボールから出してないってどういうことよ? 引っ越しの際に一旦ダンボールにしまって、引越し先ではダンボールから出さずにそのまま放置してある、ってことだろ えっ!いまどきWindowsなんかがメインの爺さんが!? いや、俺が言いたいのは開発環境が段ボールから出さないような開発って何やってたのかなと、趣味?
そんな奴がPythonならまだしもPythonistaとかいうAppを引き合いにだすもんだからさ笑
たぶん俺と同じ初心者なんだろうなーって思って絡んじゃったの、ごめんなさい 補足、Pythonistaは便利だ。
むしろPython大好きだけど、ここSwiftのスレだからあえて書こう。
このデリケートな話題を誰かデリゲートしてくれと >>48 趣味趣味、iphone のアプリ開発するのに標準python じゃ出来ないじゃん。
swiftはiphoneのアプリ開発のためのものでもあるし。
swiftにしろ、pythonistaにしろ、Objective-Cが使えるからこそ価値がある。
いくらSwiftがオープンソースになってもObjective-C のライブラリーが解放されない限りはやはりローカル言語だし。
ま、あまり他言語で荒らすのは申し訳ないから引っ込むけど。 自分はwindowsが出る前からMacを使ってたよ。
今の人はドザー マカーなんて知らないだろうけど。
しかし、いろんな言語でアプリが開発できるようになることは良い事だと思うよ。 いや、android/iOS対応の統合環境が全てSwiftじゃないから
下がるのは順当だよ
それでも18位に食い込んでるならネイティブ開発がまだまだ強い証になってる >>51
Objective-Cの圏外から20位にランクアップってどう言う事だよw というかゲーム以外のアプリ開発自体がもう下火だよね Obj-Cはユニットの中身はCで、ユニットに「◯◯をやれ」ってコマンドを送るんだよーって
おそろしくわかりやすい分割でCを拡張した言語だから
半自動的に「◯◯をやれ」ってコマンドの形でまとまらない単位は
そのままCで書く、言語仕様による見通しの良さが特徴だったんだけど
swiftは単にオブジェクト指向やモダン言語の議論から生えてきた言語の一つで
あれはあれでまとまってるけど、むしろObj-C固有の特徴からするとどこまでオブジェクトにするかの見通し面で明確に『退歩』してるんでなぁ… Objective-Cがわかんないやつって結局Cがわからないって言ってるのと同値だよね
Objective-C→Swiftにしてどのくらい生産性が上がったのか知りたいね カスタムView(以下:viewA)を作って、その初期化時にviewAにサブView(以下:viewB)を追加した場合、viewAだけに処理することはできますか?
変な聞き方なので例を言うと、
名刺のようなViewで、紙の部分がviewA、名前の文字がviewB
viewAだけをいじりたいです。
viewAが名刺の紙というより名刺自体になっているというのは分かっています。 viewAは名刺の紙のままだよ。あくまもでも、名刺の紙に名前の文字(viewB)が乗っている感じでしょ
「viewAだけに処理すること」「viewAだけをいじりたい」が何をしたいのかわからん Swift結局、コンパイル糞遅いし
日本じゃ全面移行なんてアホな開発会社多いけど
グーグルもFaceBookもライブラリ見てると
あくまで適材適所だよ
コンパイル速度が糞遅いのを考えると、大型化すればするほど
Objective-Cより開発速度は下がる PythonやJavascriptなどの動的言語呼出しができるようになったね。 まだ使いにくそうだけど。 無限アラートのブラクラで逮捕されて人いる。
for 文と UIView とそのサブクラスのインスタンス化をすることができる人も脳内にウィルスを保持しているから逮捕すべきだね。 間違えた、無限alertか
無罪判決はcoinhiveだった Pythonは挫折しちゃったけど
Swiftは頑張れてる >>70 どう言う意味? python を取り込まない限り長くはないぞ。 相性良さそうだけどな。 >>71
Pythonは何かと古臭くて萎えて投げた
そもそもApple好きだし、モダンだし、Xcodeちゃんがかわいいから続いた >Swift
文法も結構習得した Swiftは最高の趣味だと思う swift5書き換えでつまづいています。
Data型でc構造体を触る下記の方法がdeprecatedになりました。どのように書き換えれば良いのか教えて下さい。
typealias MutableCStructPtr = UnsafeMutablePointer<cStruct>
var cStruct : Data = Data.init(count: sizeOfCStruct)
cStruct.withUnsafeMutableBytes({(ptr : MutableCStruct) in
cStruct.pointee.param1 = newValue
})
代わりにUnsafeMutableRawPointer経由でc構造体を操作する方法を探していますが見つけられていません。 以下の記述ではコンパイルが通りました。
この記述では、copyOnWriteされない理解で良いでしょうか。
typealias MutableCStructPtr = UnsafeMutablePointer<cStruct>
var structData : Data = Data.init(count: sizeOfCStruct)
structData.withUnsafeMutableBytes { (p:UnsafeMutableRawBufferPointer) in
let ptr : MutableCStructPtr = p.bindMemory(to: MutableCStructPtr.self).first!
ptr.pointee.param1 = newValue
}
あるいは
structData.withUnsafeMutableBytes { (p:UnsafeMutableRawBufferPointer) in
let ptr : MutableCStructPtr = unsafeBitCast(p, to: MutableCStructPtr.self)
ptr.pointee.param1 = newValue
} >>76
中華の良さと日本のそばの良さがミックスした老舗の中華そば屋が“もはや時代遅れだ”と
密かに新業態店舗の開発を進めていたが、味がその域に至らず公表されていなかったのを
店主が死んだのを機に「中華そばに代わる新時代の業態!アジアンダイニング!」って
大々的に“これからはこれで行きます!”ってやったものの
なんだか売りがよくわからないごった煮みたいな店になって「…これ…?」って
困惑されつつ客が離れてる。だいたいそんな感じ。 Swiftで客離れてるかい?コレジャナイ感はあるとしても swift書きやすいじゃん、objectiveC書いたことないけど Hacking with Swiftで十分。無料だし。 素朴な疑問を教えて欲しいです。
簡単なosxアプリを最新のXCodeを使っています。
Macの設定でスリープオフ、画面のみオフにする設定で動かしていますが、開発中にビルドして実行した後にエラーで止まるわけではないのですが処理が止まってしまいました。
何度かは(数分)画面がオフになっても処理が継続しているのを確認してから寝たのですが数十分後に止まるような事はありますか?
止まってるのはdipatchqueue.main.asyncの中だと思うのですが、何かヒントだけでも分かれば教えて欲しいです。
エラーが出ていないのが気になります。 OS側の問題。
そんなに長くコンパイルするなら、スリープ機能等はオフにする。 >>86
ありがとうございます、スリープはオフにしてるのですが、もしかして画面がオフになるのもダメなのかしら 一回の処理が30秒ほど、これを3000回ほど繰り返しています。
今朝確認したら止まっていたので、朝の用意してる時にもう一度だけ試しましたが、30分後にかくにんしたら(画面はオフ)またも止まっていました 要所にはprintでコンソールに進捗が分かるようにコメント出してるのですが、どうもasync内の処理に入ってから止まってるような感じです。
ヒントだけでも良いのですが>< 心が折れそう 30分程度で確認に入れるなら画面オフにしないで試してみたら?
切り分けて潰していかないと あ。
ビルド中に止まってるって話じゃないのか。
すみません。 会社でたのでIDかわりました
>>92
画面オフにせずに数試してみます、私の書き方も変ですよねごめんなさい
>>93
メモリリークは分かりません、そういえば実行時に70Mbほどですが、処理が進むにつれて増えていきます。 僕はiOS畑でmacOSでの開発経験は無いけど、クロージャー内での相互強参照には注意してます。
廃棄される事のないオブジェクトのプロパティをクロージャーにキャプチャしてないでしょうか。 またもやIDかわりました。
>>95
初めて本格的に書いているので見当違いな事を言ってるかも知れませんが、変数を宣言する時にweakを付けたりはしていないです。
強参照や弱参照も疑ってみます 書いていて気付きましたが
メインスレッドとサブスレッドでクラス外の変数にそれぞれアクセスしています、順番は合っていますが(前後しません)ループ終わりに初期化したりするほうが良いですか?代入から参照を繰り返しています クロージャーは実行時点での変数などを内部に保持しますので、他のオブジェクトのプロパティやメソッドをクロージャーで実行する際には相互強参照を起こさない様、注意が必要です。
ライフサイクル内で破棄される事のないviewなどは要注意ですね。
変数宣言時というより、クロージャーにキャプチャリストを置いて対処します。
{[weak self] in self?.anyMethod()}
といった書式です。 構造体のプロパティに全部初期値を与えると、メンバーワイズイニシャライザが使えなくなるのはなぜなの?
イニシャライザ書くのめんどくさいよ。
くそ仕様なのでは? >>99 は defaultイニシャライザが定義されてるから、メンバーワイズイニシャライザが消えたってことはわかるけど、なぜこの仕様なのかがわからない。
メンバーワイズイニシャライザを使えなくするのが疑問。 xcodeに関する話題はどこか別スレ有りますか?
部品の探し方とかコードとの関連付けとか、ハウツーサイト見ても何の為にやってるのか理解できなくて。 >>72
>文法も結構習得した
と思ったたら
>>73
のようにまたリセットするのがswift
1年に一回
知識入れ替え
今までのソース全部メンテ
コンバートしても
エラーと警告が大量にでていらない仕事のオンパレード >>85 の質問をさせてもらったのですが、ご報告です。
Macのスリープ"しない"
ディスプレイのスリープ"しない"
スクリーンセーバ"開始しない"
この状態で実行すると止まらずに動いております。
問題の切り分けを進めたいのですがヒントが有れば教えて欲しいです。
作っているAppでdispatch.queue.mainを使用してラベルやインジケータを更新しているのですが、Macがスリープや画面オフ、またはスクリーンセーバ開始で問題は出るのでしょうか? 処理中にメモリー使用量が増えていくとの書き込みも有りましたが、Instrumentsを起動してAllocationsで#Persistentを確かめた感じでしょうか。 こ、こんなツール知らなかった!
なんか便利そうな感じです。
見た感じループ1週でチョビチョビ増えてる感じですね、データベースへの書き込み処理と読み込みかな?
問題はない感じっぽいです、このツールすごい 連投申し訳ありません。
ループの過程でsleep()を入れてるのですが、なんとなくこれが原因っぽいような気がしてきました #Persis tentは廃棄されずに存続しているオブジェクトです。もしここが増え続けている様ですと、強参照が疑われます。
また、iOSではラベルの更新などにはプロパティオブザーバーを使う事がよくあります。
プロパティ毎に、値が更新された時に実行する処理を指定できます。
var score = 0 { didSet { scoreLavel.text = “Score : \(score)”} }
といった感じです。
macOSでも同様かは解りませんが...
ご参考まで、 ディスプレイのスリープやスクリーンセーバでプロセスがサスペンド(?)するのはちょっと考えられないけど(もしかしてもしかしてmacOSのナンかあるかもだけど)、
https://developer.apple.com/library/archive/qa/qa1340/_index.html
Listing 2 Preventing sleep using I/O Kit in Mac OS X 10.6 Snow Leopard
で、プログラムからMacのスリープやディスプレイのスリープを抑制(というかしないように)ができるよ
アクティビティモニタで状態は確認できる。「非スリープ」の項目。出てない場合はリストタイトルを右クリックで
IOPMAssertionCreateWithName で はい
IOPMAssertionRelease で いいえ
「はい」のプロセスがひとつでもあればスリープしない >>111
今ちょうどIOPMAssertionCreateWithNameを追加して試そうとしていました、ありがとうございます。
またご報告します、他の原因も探してみます IOPMAssertionCreateWithNameを使ってNoIdleSleepを設定することで回避できたようです。
よく考えてみるとシステムがスリープになるとプロセスが止まるのは当たり前のことなのですね、気づく事が出来なくて恥ずかしいですが今後の糧とします。
皆さん本当にありがとうございました。 ここでiOSのswift playgrounds の質問して良いですか?? >>114
それは、Xcodeスレのほうが良いかもね >>115
Swift PlaygroundsつてのはiPadのプログラミング教育用のアプリだよ
XCodeスレは全然違う
ここが適切かと言われるとどうかなとは思うけど SPgのアプリの操作や、教育シナリオについての質問だと対応したもんか困るな。
Swiftのゴードに関する質問なら全く問題無い。 ありがとうございます!
プログラミング初心者で、初めてiPadでプログラムに触れて、すごい楽しんでいます。
ただ、今、同じ処理をするのに、エラーが出るコードとエラーが出ないちょっと違うコードの違いがわからなくて、悩んでいます。
分かっている人にはしょうもない質問かもしれないですが、自宅に帰ったら書かせていただきます! すみません教えてください
swift playgrounds コードを学ぼう2 の 「ステージを作るー道をつなぐ」をやっています。
島の中の座標(2.2)にブロックを2個置きたいのですが、下のパターンAはエラーが出るのに、パターンBはエラーが出ません。
やろうとしてることは同じだと思うんですが、なんでパターンBは上手くいくんでしょうか??
//パターンA
//ブロックの再宣言が無効ですのエラーが出る
let block = Block()
world.place(block, atColumn: 2, row: 2)
let block = Block()
world.place(block, atColumn: 2, row: 2)
//パターンB
//問題なく2個のブロックが置かれる
for i in 1 ... 2 {
let block = Block()
world.place(block, atColumn: 2, row: 2)
}
よろしくお願いします。 ループ内での定数宣言は各回、改めて行われているので問題無いが、エラーが起きるコードでは同じ定数が複数回宣言されているのでエラーとなる。
なお、ループ定数のiもループ内で使用されていないので、本来はワイルドカードを使用するのが望ましい。
for _ in 1...2 {
....
} これなら通るでしょう。
let block = Block()
world.place(block, atColumn: 2, row: 2)
world.place(block, atColumn: 2, row: 2) >>121
ありがとうございます!
ループ内の定数宣言について、はっきりと理解していないのですが、今後勉強します。
ループ定数iの件も今理解できないですが、ちょっと勉強します。
>>122
これも試したのですが、一個目のブロックは置かれるのですが、それが消えてから二個目のブロックが置かれてしまって結局1個しかブロックが置かれませんでした。
それも意味がわかりませんでした。。。
ちなみにこれは上手く行きました。当たり前ですが。。。
let block1 = Block()
world.place(block1, atColumn: 2, row: 2)
let block2 = Block()
world.place(block2, atColumn: 2, row: 2) >>123
あ、それはそう。
同じブロックを動かしてるから。
二つ置くなら、ブロックも二つ作らなきゃ駄目。 >>124
ありがとうございます!
ちょっといろいろ試して勉強します!
コード学ぼう2の配列の項目になると、すごく難しいのでまた質問させてください。。。
ありがとうございました! ループ内で宣言された定数blokは、一回ループすると破棄されてる。
で、次のループでまた「新たな定数として」宣言されてる。
for _ in 1...2 {
let block = Block() //定数blockが宣言され、Blockが格納された
world.place(block, atColumn: 2, row: 2) //worldがplace()を実行
} //定数blockは破棄→次のループへ >>126
ありがとうございます!
理解できました!
それってローカルスコープって言うものと関係があるのでしょうか?
ローカルスコープ内で宣言された定数がそのループ内で下まで行って、
それで宣言されたのは消えるけど、ブロックは残る。
でまたループの最初で新たに宣言されて、同じ名前のブロックだけど、1個目のブロックとは違う2個目のブロックが作られるってことですね!
ありがとうございます! 親切にありがとうございます。
プログラム面白いです! >>127
スコープの話はその通り。
ブロックに関しては、その入れ物である定数が破棄された時点で同時に破棄されてる。
画面は書き換えられてないから、絵としては残ってるけど。 >>122のコードだと、スコープ内だから定数blockも、そこに格納されてるブロックも「そのまま」残ってる。
で、先ず一回めのplace()でブロックがcolumn 2, row2に置かれる。
そして、その同じブロックがまたplace()で使われて、同じ位置に置き直されてる。
だから一旦消える。 >>129
>>131
ありがとうございます!
このブロックが消える残るの違い、分かりそうな分かってなさそうなです...
じっくり考えます! 手持ちのiOS向けコードをmacOS向けにビルドしてみてる。
拍子抜けするほど簡単。
iOSはスレッドの選択に寛容なのだと分かった^_^
iOSで引っ掛からなかったミスをmacOS向けだとキッチリ指摘される。
お陰でiOS向けの動作も改善できた(^^;; わりと簡単な2画面使うアプリのソース無料でかどこかに落ちてないですかね。
一通り言語の勉強は終わったので、マニュアルの課題よりちょっと上の画像扱うアプリのソースとか見てみたい >>138
チュートリアルとしてはこれとか。
https://www.hackingwithswift.com/100/16
サンプルソースコードへのリンクも記事の中に有るよ。
ただし、よくあるstoryboardのセグエを使うやり方じゃ無いけど。 SwiftUIはDateFormatterのロケールに未対応だね すみません、教えてください。
今とあるWebサイトに載っている
プログラムの意味を一つずつ調べていまして、
let okHandler: () -> Void = { handler in
if let textField = alertController.textFields?.first {
completionHandler(textField.text)
} else {
completionHandler("")
}
}
の構文がどうなっているのか、全然分かりません。
{ handler in ・・・ からは、
引数も戻り値も無いクロージャーと思っていますが、
正しいでしょうか?
あと、
let okHandler: () -> Void = { handler in
って、
let okHandler = { handler in
ではだめでしょうか? >>142
分解して理解する
let 変数名: 型 = 値
【型】
クロージャ型の場合さらに分解して
(引数型宣言) -> 戻り値型
「引数無し」は「空のタプルを1つ」と同等として扱われる
また、Void型は空のタプル型のエイリアス
Void = ()
以下は全て同じ型「() -> ()」になる
let okHandler: () -> Void = {}
let a: (Void) -> Void = okHandler
let b: () -> () = okHandler
let c: (()) -> (()) = okHandler
let d: ((())) -> ((())) = okHandler
【値】
クロージャの場合
{引数定義 in 本体}
今回の方の場合、handlerは空のタプル型の引数となる
クロージャ型を省略するとhandlerの型が不明になりコンパイル出来ない
handlerの型を明示するか「引数定義 in」を省略すれば可能
let okHandler = { (handler:Void) in }
let okHandler = { } 引数をとらないクロージャー() -> Voidとしているのに{ handler in ....}というは通らないのでは。
クロージャー内でもhandlerは使われていないし。 すまん、Swift4からは引数型宣言とタプル型の区別が厳密化した影響で通らなくなってるな
https://github.com/apple/swift-evolution/blob/master/proposals/0110-distingish-single-tuple-arg.md
>>143を訂正
>「引数無し」は「空のタプルを1つ」と同等として扱われる
これはSwift3までで、Swift4以降は間違い
空のタプルを1つなら以下になる
let okHandler: (()) -> Void = { handler in }
let a: (Void) -> Void = okHandler
let b: (()) -> () = okHandler
let c: (()) -> (()) = okHandler
let d: ((())) -> ((())) = okHandler
let okHandler2 = { (handler:()) in }
引数無しなら引数は書けない
let okHandler3 = { }
さらにSwift4→Swift5でも型の文字列化が変更されているようで
print(type(of: { (handler:()) in } ))
が
Swift4では () -> ()
Swift5では (()) -> ()
と表示される >{ handler in ・・・ からは、
>引数も戻り値も無いクロージャーと思っていますが、
>正しいでしょうか?
正しい。但し、クロージャー内の’handler in’は現在は通らない。
>let okHandler: () -> Void = { handler in
>って、
>let okHandler = { handler in
>ではだめでしょうか?
そもそも、
let okHandler: () -> Void = { handler in
では現在は通らない。
let okHandler: () -> Void = { () in
let okHandler: () -> Void = {
let okHandler = {
let okHandler = { () in
これらは通る。
という事ですね。 >>142 です。
>>143、>>144
ありがとうございます!ほんと凄いです。
お伝えしていませんでしたが、swift3でした。
失礼しました。
油断したらまた何だったっけ?ってなりそうですが、
「タプル」「空のタプル」で検索したりして、
かなり分かりました。
let okHandler = {
でいいような・・・。
ところで、分かってきて、また疑問が湧いてきました。
// 引数と戻り値のないクロージャ
let closure = { () -> Void in print("クロージャテスト") }
closure()
let closure: () -> Void = { print("クロージャテスト") }
closure()
って、同じ意味だと思いますが、
なぜ、
let closure: () -> Void = { print("クロージャテスト") }
の形(今回質問させていただきましたクロージャー型={}の形)
なのか分かりますでしょうか?
好みの問題でしょうか?
let closure: () -> Void;
closure = { print("クロージャテスト") }
closure()
なら、なんとなく分かりますが。 変数、定数の宣言は、型が推定できるか、または明示されていることが絶対条件ですので、値を指定しない限り型を明示する必要があります。
ですので、基本的には
let 定数名: 型
var 変数名: 型
となる訳です。
この場合、値は後で代入する事になります。
定数名 = 値
変数名 = 値
この二段階を一度に行う事が可能で、
let 定数名: 型 = 値
var 変数名: 型 = 値
という書式になります。
この時、していされた「値」によって、定数(変数)の型を推定する事ができるので、型宣言を省略可能になります。
let 定数名 = 値
var 変数名: = 値
どの書き方をするかは基本的に自由です。
読み易さやメンテナンスのし易さ、その他の事情に応じて自分で判断します。 修正
誤)var 変数名: = 値
正)var 変数名 = 値 ざっくり書きますが、
クロージャー型宣言部分での引数、戻り値の記述、クロージャー(値)部分でのそれも、基本的には両方とも「書く」のです。
が、どちらかで書かれていれば他方は推定可能なので省略でき、更に両方で書かれていない場合は「引数も戻り値も無いのだな」と推定可能なので書式として通る
そんな感じです。 ちなみに
let 定数名: 型 = 値
var 変数名: 型 = 値
この書き方には、型を「確実に」指定出来るというメリットが有ります。
値が「1.0」である時、この値を割り当てられた変数の型は
float でしょうか、それともdouble でしょうか。
どの型であるかでプログラムに不都合が起きる場合、推定に任せるわけにはいきません。
この様な場合には上記の型を明示する書式が採用されます。 >>147
戻り値まで指定しているその2例だと好みの問題かな
戻り値を指定しない場合は
最後のステートメント次第で型が変わる可能性がある
func print2(_ s:String) -> Int {
print(s)
return 10
}
let closure1:() -> Void = { print2("クロージャテスト") }
let closure2 = { print2("クロージャテスト") }
closure1は () -> Void
closure2は () -> Int
---
個人的にはトレーリングクロージャで使えるクロージャ側で指定する方が好み
func arr2<T>(_ f:()->T) -> [T] { return [f(),f()] }
let a = arr2 { () -> UInt8 in 10*2 }
print(type(of: a ), a) // Array<UInt8> [20, 20] >>147 です。
>>151、>>152
ありがとうございました!
正直、大変失礼ながら、
こんなにちゃんと教えていただけるとは思っていなかったです。
大変感謝しております。
なるほど、なるほどの連続で、
「個人的にはトレーリングクロージャで使えるクロージャ側で指定する方が好み」
のところが全然分かりませんでしたが。w
また進化して戻ってきます! Swiftを始めてみたいんだけどMacが必要らしくてMac miniかMacbookを買おうと思ってる(高い)
こどおじだからMac miniでいいかな?
実際に開発してる者の意見を聞きたい(開発上の利便性とか速度とか) プロジェクトの規模による。
始めてみる程度ならMacBook Airでも問題無い。
サブディスプレイの有無で作業効率がかなり違うので、出来れば用意したほうが良いと思う。
実機テストにも使えるし、サブディスプレイにもなるのでiPadはお勧め。
iPadは、サブディスプレイ接続しなくても資料の表示にはかなり役立つ。
MacとiPadは相互にコピペ出来るし、その他の連携も良い。 プログラミングの学習を始める時は機材もそうだけど教材も重要。
実際に打ち込んで結果を確認しての繰り返しなんで、「次に何をやるか」のネタが尽きない事が大事。
英語にアレルギーが無ければ、↓のサイトがお勧め。
https://www.hackingwithswift.com/100/
Swiftの基礎から、そこそこ自分で組める見通しが立つ程度まで100日間のコースが組まれてる。
最新の環境に更新されているし、ソースコードを含めて全て無料。
100日間、ネタが尽きない。 >>158
面白そうだけど、英語が苦手で・・・
日本語でおススメサイトないですか? 日本語だと、なるべく新しい本を買うのがお勧めかな...
ネットの情報は新旧錯綜してるし、当のAppleも日本語のガイドや入門コースは更新が送れてる(^^;;
Appleの入門コース、内容は凄く良いんだけどね。無料だし。 >>159
読めないにしても
YouTubeの設定の字幕表示+自動翻訳(英語→日本語)と
ブラウザでのページ翻訳 くらいは使えるようになった方が良いと思うよ 技術系の本は出てくる用語が限られてるし、下手くそな文章は別にして、大抵よく整ってるから意外と読めちゃうよね。 英語できないとかプログラムこの先やっていく上で致命的すぎるだろ まあ、まずは取っ掛かる事だわな。
続けてりゃ、後から色々ついてくるもんだし。 ある程度知ってるものについて英語の文献を読むのならまだしも、知らないものについてゼロから学習するのは辛いものがあるからな >>164
>>166 今はオンライン辞書や翻訳もあるから、それほど恐れることはないとも言えるが、
少なくとも中学英語の副読本の物語をすらすら読める程度じゃないと辛いだろうな、 macOSやiOSには辞書が標準でインストールされてるし、わからない単語はその場で確認出来るしね。
全くの初学なら基本的な型や制御文、UI部品の幾つかについては日本語のテキストで学んで用語をある程度頭に入れたら、英語のテキストに取り組むと良いかもね。
いかんせん、日本語の書籍のサンプルコードは断片的でつまらないし、応用も効きにくいんだよなぁ...
ほんと、Appleの入門コース日本語版は早くアップデートすべきだと思うよ。 iOSアプリのMacへの移植、アップル重役が大幅改善を予告
やはり人間がデザインを調整する必要あり
https://japanese.engadget.com/2019/06/20/ios-mac/ 「iOSアプリをmacOSで使える様になる」「統合される」なんて言う連中が未だに居るからね。
「iPadでmacOSアプリ使える様にしろ」とかさ。
あり得ないっつーの。 >>173
Windowsで出来ているんだから、Appleでもできるだろ。 >>174
あれはやらかしちまったって言うんだよ。 Macアプリ開発への呼び水だろうな。簡単にMacアプリ作れるじゃんと思わせといてちゃんとしたアプリを作ろうと思うとどっぷりAppKitに浸かっていく流れ。 だってMacアプリ少なすぎて
おまえらがiOSアプリしか作らないのがあかん 少なすぎるって事は無いだろ。
catalystの狙いはmacOSアプリを増やすというより、両環境向けのアプリを増やす事で連携を高める事だろ。 だってmacOSよりiOS乗ってる機械の方が圧倒的に多いしな iOS機器はネット端末のイメージが強いから、アプリもネットサービスを利用する感覚でダウンロードされやすい。
開発者にとってはそこが魅力。 概念としては何度も提唱されていたMVC(モデル-ビュー-コントロール)って
プログラム実体とUIと接続部に最初から分けて実装すれば変更と移植が楽になる。
ってのを実際にやったのがジョブズが90年代にやってたNeXTで
MacOSXはそれをAppleに持って来たもの。
で、システム、アプリの基本的なつくりがそうなっているので
モバイル用にモジュール入れ替えてUIをモバイル用にした
『MacOSXの別バージョンがiOS』(だったりtvOSだったりetc)
だからプログラム実体とUIとコントロールは独立しているはずなので
「その機種用のUIに置き換えれば楽に移植できるし、システム的にそういうつくりのはずだよね?」ってのが基本。
前提が「(従来は全書き換え作り直しだけど)」って前書き入り。
Appleの前提は「違う環境じゃ違うUIや構成になるから変えなきゃね」で基礎システムできた上の主張やビジョンだけど
MSのWindows10はなんかそのあたり理解しないで「(うちは基礎システム環境ごとに全書き換えだから)全ての環境で同じものが動くようにします!」だから
さすがにありゃ「バカじゃねぇの?」としか… つうか、色々なサイズ重量の機種に載せるOSにデスクトップ用とタブレット用とを抱き合わせ、しかもタブレット環境の筈なのにデスクトップUIのアプリ走らせ...
支離滅裂でしょ。
当然、持ち運び不能な機種で余計なタブレットモードは有るわ、タブレットモードとは別枠で複数のUIは有るわ、タブレットでマウス必須のアプリが走るわ
当然、タブレットに最適化したアプリは増えんわ
デスクトップ用のアプリは変な風にタブレットの影響受けるわ(ここはAppleもやらかしとる)
んで、OSがそんなワケワカメなもんだから、虻蜂取らずな2in1なんてハードは出てくる(まあ、出さざるを得ないわな)わ...
ソフト屋の筈なのに、UIの作り込みやUXガン無視ってなんなん?
お陰でiPadをPCと混同する様な要望やら、OSを統合しろやら、ユーザーの要望を聞かないのは横暴だの、とんだとばっちりを食わされてる訳で。
大丈夫だとは思いつつ、いつかAppleがポリシーを曲げやしないかとハラハラするこの数年だわ。 ハード屋の方がソフトウェアの事が解ってる、またはソフト作りにポリシー持って仕事してるという皮肉 俺が>>181だが同じような長文投下した>>182は俺の話引き継いで
マイクロソフトとWindows10の話をしてるんだと思うぞw ゴメンわかりづらくて。
しかも、主に言いたかったのは最後の二文だったりするし。 >>181
> 概念としては何度も提唱されていたMVC(モデル-ビュー-コントロール)って
> プログラム実体とUIと接続部に最初から分けて実装すれば変更と移植が楽になる。
> ってのを実際にやったのがジョブズが90年代にやってたNeXTで
細かいことですが、MVCのCは「コントロール」ではなく「コントローラー」です^^;
あと、MVCは概念だけでなくNeXTよりずっと以前、1970年代終わり頃のSmalltalkで既に実装が試されています。
つまり、アラン・ケイたちが1970年代を通じて開発したダイナブックの暫定OSですね。
念のため、ケイたちのSmalltalkは暫定ダイナブックのOSとしては販売されませんでしたが
開発環境の「Smalltalk-80」としてLisaや旧Macより前に製品化されそこに古典的MVCも組み込まれています。
▼ジョブズが観た当時のアラン・ケイたちの暫定ダイナブックOS(Smalltalk-76)
https://commons.wikimedia.org/wiki/File:Smalltalk-76.blowup.png
ちなみにこのSmalltalk環境のGUIを1979年に観たジョブズがGUIという表層だけ真似てLisa/旧Macを作り
その後Appleを追い出されてから、ネットワークとOOPを追加して改めて真似て作ったのがNeXTです。
▼PARC訪問とNeXTの成り立ちに関連するジョブズの証言
https://vimeo.com/31813340#t=55m (55分あたりから)
▼↑の部分を書き起こしたもの
http://web.archive.org/web/20121016134054/http://americanhistory.si.edu/collections/comphist/sj1.html#soft Swiftのスレなんだが
土日のレスがまとめてスレチにしか見えん プログラマーとしてのポリシーに関わる問題だから、あながちスレチとも言えない。 混乱しています。教えて下さい。
UnsafeMutableRawPointerに対してmemcpy上書きした場合に
copyonwriteされないという理解で良いでしょうか。
あちこちググりまくりましたが、SwiftにおけるunmanagedとUnsafeの使い分けが理解できていません。 >>194
Unmanagedの先はAnyObject (型情報や参照カウンタ等を持っている)
UnsafePointerはただのポインタ値でその先が何かを関知しない
もちろんmemcpyにCopyOnWriteなんて処理は入っていない
SwiftのArrayやDictionaryがCopyOnWriteするのは
各メソッドがそうするように実装されてるから コメントありがとうございます。
UnmanagedはあくまでAnyObjectを指すという考え方がわかりやすいです。
ポインタ操作ではCopyOnWriteされないのでホッとしました。 Swiftと言うかxcodeなんですが、どなたかお解りになる方はお教え下さい。
複数の画面を移動して、ほぼ同じ処理、音を出すアプリを作っています。
画面Aはボタンから
@IBAction func HameMinor(_ sender: Any) {
let soundUrl = Bundle.main.url(forResource: "HameMinor", withExtension: "mp3")
var soundId: SystemSoundID = 0
AudioServicesCreateSystemSoundID(soundUrl! as CFURL, &soundId)
AudioServicesPlaySystemSoundWithCompletion(soundId) {
}
}
で音は出ますが、画面Bも同じく
@IBAction func HameHarm(_ sender: Any) {
let soundUrl = Bundle.main.url(forResource: "HameHarm", withExtension: "mp3")
var soundId: SystemSoundID = 0
AudioServicesCreateSystemSoundID(soundUrl! as CFURL, &soundId)
AudioServicesPlaySystemSoundWithCompletion(soundId) {
}
}
としても音が鳴りません。どうしたら良いでしょうか? HameHarm.mp3に問題が有るか、ここに挙げてある以外のコードに問題が有るかのどちらか >>199
ありがとうございます。
他にも沢山のmp3ファイルがあって、複数試しているのですが、別画面だけダメなんです。
何か別画面への定義とかあるんでしょうかね…? 同一のコードだけを並べて見せられても前記の答えしか出てこないよ。
同じものは何度見直しても同じだし、検証して確かに問題無いと言える筈の箇所は幾ら疑っても問題解決には繋がらない。
他の部分、他の理由に当たるべき。 >>201
ありがとうございます。
そうですよね、「定義が無い」エラーを消して動かして原因を探っていましたが、判りません。
ググってもそれらしいのは出てきません。頑張って探してみます。
画面移行のボタンは正常に動くのになんでだろ… >>202
soundUrlを検証
おそらくおかしな値になってると思う storyboardとibactionが連結されてないだけじゃね? >>203
Bundle.main.urlの部分でしょうか? コピペで音源名だけ変えました。
>>204
あ、それどうやってやりますか? 定義や連結だと薄々思っています。
いずれ、ありがとうございます。希望が持てます! >>202
何が定義されてないというエラー?
そのエラーメッセージを先ずはきちんと読んで。 pageviewcontroller でpagecurlにすると意図したように動くのにscrollにすると意図したように動かないなんで 多分原因と思われるところに行き着きました。
ボタンをコードに紐付ける時に、Nameとか入力するダイアログが出ます。
その「Object」欄がメインページからだと「View Controller」がデフォなのに、
別ページのボタンからでは「Exit」固定なんですよ。
Connections Inspectorでも確認できます。
コレを「View Controller」にするにはどうした良いのでしょうか? 自己解決しました。正に連結の問題でした。
お考え下さった皆さん、そしてアドバイスを下さった方々に感謝します。
ありがとうございました m(_ _)m swiftは使いやすくなってるんだろうなぁと思って触り始めたんだけど
objCを資産として残したせいでむしろ闇鍋糞言語化してない? SwiftもコトリンもReact Nativeに負けたよ >>216
あぁ、スミマセン、何処見てたんだろ?(汗 >>212
今のSwiftでObjCに足引っ張られてる所ってどこだよ >>219
objCに何かしら不満点があったから新言語導入したはずなのに
objCの方言みたいなスタートしたせいで仕様がコロコロ変わりすぎ
同じようなクラスが乱立するしネットは使えなくなってる文献の山で汚染されるしAppleが自分で作ったサンプルさえ放置されてたりするし
ちょっとした調べものが大冒険になる >>220
ネットに最新の答えがないケースが多いよな
時間かけて答え探して結局力ずくで自己解決するしかないという そんな状況なのか、増税前だけどmac買うの控えるわ >>222
ボロクソ言ったけど極めてしまえば悪い言語ではないんだろうなと思うよ
学ぶための道筋がグチャグチャすぎて片手間でちょっとやるわだと苦行すぎるだけで >>223
androidばかり触ってるからswiftもやろうかなぁと
swiftは全く勉強してないから、半年程度はもがく覚悟はあるんだけどねw >>223
Swiftはいいよ関数型言語とオブジェクト指向を両方扱える
atomも含めて全てオブジェクトとして使えるから理想的ではある スマホアプリの出版ブームが去って、体系的に学ぶには英語をやるしかないから、
稼ぐには以外と良いジャンルかも? 作成したばかりの空プロジェクトでもバックグラウンドに行くとエラーメッセージが出てくる
なんかみんなiOS13のバグって言ってるっぽいし無視してもいいんだろうか >>229
出るけど無視してるよ、今のところ特に問題もないと思う すみません。質問をさせてください。
CallKitを使って着信時の電話番号を取得する方法はありますでしょうか
やりたいことは掛かってきた着信に対して画面はOS標準の着信画面のまま、
裏で電話番号をログに取得したいです。
CXCallObserverDelegateを使っても着信した瞬間や電話が切れたイベントは取得できるのですが、
かかってきた番号がわからず、また、CXProviderやCallDirectoryExtensionを使用しても
着信時の画面は奪えてもやはりかかってきた番号がわからないようなのです。
ご存じの方おられましたらご教示いただけないでしょうか SwiftUIのサンプルみてると ¥.self ってでてくるんだけど
¥つけるとどんな意味になるの? >>233
ありがとうございます。
やはり取得する方法はないみたいですね。 初起動してまだ30分経ってないけどストーリーボードいじってて、そのままコード表示画面?出してうにゃうにゃしてたら変なコードを追加してしまった
カーソルで示した2行を消したいんだけど、Delete押しても何もならない
誰か助けて
https://i.imgur.com/d3rxzHN.png 以下のホームページに従ってUIPageViewControllerでスワイプによる画面遷移を設定しましたが、
シミュレーターや実機で動かすと真っ黒な画面が表示されるだけで、全くプログラムが動きません。
https://qiita.com/Takeshi_Akutsu/items/dbf54df8e8a50e8ed5be
どんなことが原因として考えられるでしょうか・・? >>240
Xcodeのコンソールを確認してエラーや警告が出てないか確認する
Main Interfaceの設定かInitial View Controllerの設定がうまくできてない可能性が高い ド初心者です。cocoa podsでインストールしたライブラリ(Expression)が使えません。
Expression以外のライブラリもダメみたいです。
環境は以下の通りです。
os 10.11.6
xcode 8.2.1
pod 1.8.4
アナライズすると以下の3つがエラーとして表示されている状態です。
AnyExpression.swift
Expression.swift
Foundation.Int まさかとは思うけど、importしてないとかはないよね? podでインストールしたら.xcodeとは別に.xcodeprojってファイルができるんだけどそっちを実行してないとか。
swiftファイルでimportしてないとか。
もしくは一度もビルドしてないとか? >>245-246
ターミナルから open hoge.xcworkspaceを開いて、
デフォルトで記入されているViewController.swiftにimport Expressionを追加しただけの状態で試しています。
import Expressionをコメントアウトしてもビルド失敗する状態です。
フォルダ内
http://up-img.net/img.php?mode=png&id=1776
一覧
http://up-img.net/img.php?mode=png&id=1775
エラー
http://up-img.net/img.php?mode=png&id=1777 >>247
使用してる最低iOSのバージョン<ライブラリのiOSのバージョンになってるとか? >>248
>使用してる最低iOSのバージョン<ライブラリのiOSのバージョン
バージョン関係のような気もしますが、初めてなのでよくわかりません。
expression 0.13.2
swift 3.0.2
iosのバージョンはどこでみたらいいのでしょうか?
>>249
こんな感じで、ライブラリ内部のエラーとして出るようです。
http://up-img.net/img.php?mode=png&id=1778 >>250
Xcodeのバージョンが原因
Double/Intのinit(truncating:)はXcode 10.2+ (Swift 5.0)
StringのdropFirst(_:)はXcode 9.0+ (Swift 4.0) >>251
ということは、古いexpression(cocoapodsも?)のインストールが必要ということでしょうか。
どのバージョンが対応しているとかはどこを見たら良いのでしょう? 試しに新規プロジェクトで適当に少し古いの0.11.4を入れてみましたが、こんな状態です。
No Such Moduleと出ている時点で何か間違っているのでしょうか?
http://up-img.net/img.php?mode=png&id=1779 古いiOSのバージョンを使ってるから、ライブラリに使っている関数が使えなくてエラーが出てる。
解決方法としては、諦めてバージョンアップするか、ライブラリの古いバージョンをインストールするか、別のライブラリを探すしかないんでないかな。 osが古いのでバージョンアップはできません。
古いのを入れるのは構わないんですが、
どのバージョンを入れれば良いのかって、どこで調べたらいいいんでしょう? >>252
エラー箇所はExpression関係ないからまずSwiftのAPIリファレンス見て
https://developer.apple.com/documentation/swift/double/3126646-init
Expressionの対応SwiftバージョンはCHANGELOG.mdを確認するか
.swift-versionの履歴を確認すればわかる >>256
>SwiftのAPIリファレンス
↑何を見ればいいのか、全くわかりませんが、
CHANGELOGとSwift3のリリース年からexpression 0.2〜0.5まで試して
4.0以下でとりあえずビルドできることがわかりました。
ありがとうございました。 Windows で iOS 用アプリのクロス開発をするための Swing 処理系は
ありますか? >>259
すみません、Swing --> Swift です。 https://swiftforwindows.github.io/news/2018/02/12/Swift-for-Windows-Cygwin-20180212/
https://github.com/tinysun212/swift-windows/releases/tag/swift-4.0.3+cygwin.20180212
にて、cygwin 用に非公式に公開されている swift-4.0.3.cygwin.20180212-bin.tar.gz
の Swift をインストールし、次のような1行の HelloWorld.swift を用意しました:
[HelloWorld.swift]
print("Hello World!")
そして、
$ ./swift -v HelloWorld.swift
とすると以下の様になります。
Swift version 4.0.3 (swift-4.0.3+cygwin.20180212)
Target: x86_64-unknown-windows-cygnus
/cygdrive/k/Commu/FromOther/cygwin/Swift/swift-4.0.3/usr/bin/swift -frontend -interpret HelloWorld.swift -disable-objc-interop -module-name HelloWorld
<unknown>:0: error: could not load the swift standard library
この swift standard library とはいったいなんでしょう? >>263
さらに、今度は、同じ swift-4.0.3.cygwin.20180212-bin.tar.gz 内に同梱されている swiftc を使って、
$ export LIBRARY_PATH=/usr/i686-pc-cygwin/sys-root/usr/lib
$ ./swiftc -v HelloWorld.swift
としてみると、以下のようになります。この iconv とは一体何のために使われているものでしょう。
環境変数の LANG が、ja_JP:UTF-8 のようになっていたので、export LANG=C としてみたのですが結果は変わりませんでした。
なお、LIBRARY_PATH を設定せずに実験してみたところ、iconv が見つからない様だったのでcygwinのGUIインストーラー
でそれっぽいものをいくつかインストールしてから、ローカルディスク内に libiconv.a を検索すると
/usr/i686-pc-cygwin/sys-root/usr/lib
に見つかったので、上記の様にライブラリ・パスを設定してみました。 >>264
Swift version 4.0.3 (swift-4.0.3+cygwin.20180212)
Target: x86_64-unknown-windows-cygnus
/cygdrive/k/Commu/FromOther/cygwin/Swift/swift-4.0.3/usr/bin/swift -frontend -c -primary-file
HelloWorld.swift -target x86_64-unknown-windows-cygnus -disable-objc-interop -module-name HelloWorld
-o /tmp/HelloWorld-d1394e.o
/cygdrive/k/Commu/FromOther/cygwin/Swift/swift-4.0.3/usr/bin/swift-autolink-extract /tmp/HelloWorld-d1394e.o
-o /tmp/HelloWorld-8a9384.autolink
/usr/bin/clang++ -Xlinker -rpath -Xlinker /cygdrive/k/Commu/FromOther/cygwin/Swift/swift-4.0.3/usr/lib/swift/cygwin
/tmp/HelloWorld-d1394e.o -L /cygdrive/k/Commu/FromOther/cygwin/Swift/swift-4.0.3/usr/lib/swift/cygwin
-lswiftCore --target=x86_64-unknown-windows-cygnus @/tmp/HelloWorld-8a9384.autolink -o HelloWorld
/usr/bin/ld: skipping incompatible /usr/i686-pc-cygwin/sys-root/usr/lib/libiconv.dll.a when searching for -liconv
/usr/bin/ld: skipping incompatible /usr/i686-pc-cygwin/sys-root/usr/lib/libiconv.a when searching for -liconv
/usr/bin/ld: skipping incompatible /usr/i686-pc-cygwin/sys-root/usr/lib/libiconv.a when searching for -liconv
/usr/bin/ld: skipping incompatible /usr/i686-pc-cygwin/sys-root/usr/lib/libiconv.dll.a when searching for -liconv
/usr/bin/ld: skipping incompatible /usr/i686-pc-cygwin/sys-root/usr/lib/libiconv.a when searching for -liconv
/usr/bin/ld: cannot find -liconv
clang-8: error: linker command failed with exit code 1 (use -v to see invocation)
<unknown>:0: error: link command failed with exit code 1 (use -v to see invocation) 漏れも、Windows で、Ruby をやるのに、
ユーザー環境変数、RUBYOPT に、--encoding=UTF-8 を設定してる
これを設定しないと、入出力で、sjis でやり取りする事になって、
Ruby内で文字列処理をする際に、一々、utf8 に変換しないといけなくなるから、うっとうしい
日本語変換には、NKF をよく使う。
iconv は、昔のイメージ。今でも使うのかな? Windows 10, WSL, Ubuntu 16.04 では、
which iconv と入力すると、
/usr/bin/iconv
iconv は、最初から入っている!
でも、NKF は入っていない
入っていなければ、パッケージマネージャーでインストールすればよいのかも?
たぶん、PATH が通っている所に、インストールされるのではないか?
まあ、漏れはよく知らないから、説明書を読んだ方がよい 開発環境か、PC を再起動してから、もう一度やってみれば? >>265
【進展しました。cygwinのswiftc で実行ファイルが生成できます】
cygwin の GUI インストーラーで、Full の範囲を対象に、iconv で検索して、出てくる libiconv 的なものをインストールする。
ローカルディスクを iconv を検索すると、libiconv.a が、
1. C:\cygwin64\usr\i686-pc-cygwin\sys-root\usr\lib
2. C:\cygwin64\usr\i686-w64-mingw32\sys-root\mingw\lib
3. C:\cygwin64\usr\x86_64-w64-mingw32\sys-root\mingw\lib
の三箇所に見つかる。1, 2 は、ld が 「skipping incompatible」 とエラーを出すが、
3. にある libiconv.a, libiconv.dll.a では上手く行って、環境変数 LIBRARY_PATH に
$ export LIBRARY_PATH=/usr/x86_64-w64-mingw32/sys-root/mingw/lib
としてから、
$ ./swiftc -v HelloWorld.swift
とすると、
Swift version 4.0.3 (swift-4.0.3+cygwin.20180212)
Target: x86_64-unknown-windows-cygnus
/cygdrive/k/Commu/FromOther/cygwin/Swift/swift-4.0.3/usr/bin/swift -frontend -c -primary-file
HelloWorld.swift -target x86_64-unknown-windows-cygnus -disable-objc-interop -module-name
HelloWorld -o /tmp/HelloWorld-1bba48.o
/cygdrive/k/Commu/FromOther/cygwin/Swift/swift-4.0.3/usr/bin/swift-autolink-extract
/tmp/HelloWorld-1bba48.o -o /tmp/HelloWorld-40659b.autolink
/usr/bin/clang++ -Xlinker -rpath -Xlinker /cygdrive/k/Commu/FromOther/cygwin/Swift/swift-4.0.3/usr/lib/
swift/cygwin /tmp/HelloWorld-1bba48.o -L /cygdrive/k/Commu/FromOther/cygwin/Swift/swift-4.0.3/
usr/lib/swift/cygwin -lswiftCore --target=x86_64-unknown-windows-cygnus @/tmp/HelloWorld-40659b.autolink
-o HelloWorld
となり、カレントディレクトリには、HelloWorld という MS PE 形式の実行ファイルが出来ています。 >>269
しかし、
$ ./HelloWorld
としてみると、
K:/Commu/FromOther/cygwin/Swift/swift-4.0.3/usr/bin/HelloWorld: error while loading shared libraries: ?: cannot open shared object file: No such file or directory
と出ます。これは今のところ直りません。ロードしようとしている shared library が「?」という名称になっていて、
どれをロードしようとして失敗しているのかさえ分かりません。 「swift Cygwin error while loading shared libraries: ?: cannot open shared object file: No such file or directory」で検索!
解決の基本は、エラーメッセージを詳細表示して、それで検索して調べる
cygcheck というコマンドを使ってみれば?
>>269
ひょっとして、1.2. の、i686 というのは、32ビットなのかも?
64ビットCPU にも、これらがセットで入ってくるの? >>271
$ cygcheck ./HelloWorld 1>a 2>b
とすると、
[b の中身]
cygcheck: track_down: could not find cygicui18n60.dll
cygcheck: track_down: could not find cygicuuc60.dll
でした。これらのファイルがどの cygwin パッケージなのかが今のところ分かりません。
分かればインストールできるのですが。 >>274
【成功です】
結論から言えば、
cygwin の GUI インストーラーから、
Category: libs
Package: libicu60 (6.0.2-1)
というものをインストールすると、C:\cygwin64\bin に cygicui18n60.dll, cygicuuc60.dll の両方がインストールされ、
$ ./HelloWorld
とすると、
Hello World!
と表示されました。
これで、cygwin 上で、Swift コンパイラを使って、Hello World の表示まで
完全に成功したことになります。
cygcheck のご助言は進展に大きく貢献しました。
ご協力ありがとうございました。 >>275
【追加情報】
この状態だと、swiftc だけでなく、swift の方も動作することが確認されました。
$ ./swift
とすると、対話型インタプリタが起動し、1 + 2 と入れると、3、
print("aaa") と入れると、aaa と表示されます。
これは、個人的には、ほぼ完全動作だと思えます。 わーんインスピレーチョンがわかないよぅ!!!
せっかく入門書一冊読破したのに、いざ作りたいものがないって、どうすればいいんだよう!! 日本語の互換性では、cygwin よりも、
Windows 10, WSL に、Ubuntu などのLinux を入れて、
その上で実行する方法も、あるかも知れない
まあ、cygwinで日本語を入力して、バグったりすれば、
WSL も考慮してもよいかも
ただし漏れは、Swift の事は知らないけど。
あくまでも、一般論です! >>278
速度面ではcygwin版の方がだいぶ速いはず。 Windows 版のRuby では、irb というREPL で、
日本語を入力すると、バグってしまう
だから漏れは、irbを使うときは、
Windows 10, WSL, Ubuntu 内の、Rubyを使っている
日本語の互換性では、cygwin, MSYS2 よりも、WSL上のLinux の方がよい Swiftってnilはもう諦めて好きに使って良いよにできないんだろうか
nilのないプログラムって理想と頻出させるしかないって現実がせめぎあった結果一生アンラップ書き続ける謎言語化してる Optionalのまま持ち歩いて最終地点でアンラップ
最終地点はだいたいI/O つうか、nullになる見込みを明記できる所にメリットが有るんだと思ってるんだが。 SystemSoundのIDの番号と音って一定?
振動とか音とか今いっぱい使ってるアプリ作ってるけど、機種変する前にメモしてた番号が若干おかしい気がする IBMがSwift開発を終了
https://www.infoq.com/jp/news/2020/02/ibm-stop-work-swift-server/
GoはKubernetesのようなクラウドテクノロジのコアインフラストラクチャや、CLIの開発などに使われるシステム言語として、真の得意分野を見つけることに成功しました。
Rustはまだ展開すべき場所を模索している段階ですが、Web Assemblyによって大きな関心を集めるようになっています。
Swiftが採用曲線において遅れを取っていることは否めない事実です。 初心者で色々調べてみたのですが、以下のSubclassを導入したいのですがうまくいきませんでした。
コード内に以下を貼って、UISliderインスタンスのクラスをUISliser!からMySliderに変更するだけではだめなのでしょうか?
https://qiita.com/n_komiya/items/15d3d755e2bed46b5da2
iOS12以降
class MySlider: UISlider {
override func beginTracking(_ touch: UITouch, with event: UIEvent?) -> Bool {
let tapPoint = touch.location(in: self)
let fraction = Float(tapPoint.x / bounds.width)
let newValue = (maximumValue - minimumValue) * fraction + minimumValue
if newValue != value {
value = newValue
}
return true
}
} カスタムクラスのSwiftファイルつくってStoryboadとViewControllerでカスタムクラスを指定したらできました
この操作は何度かしてたと思うけどなんで実装できなかったのか分かりませんが 選択したセルを赤くするようにしたんだけど画面外に行くと再利用されて選択されてない状態になるんで選択状態を保持するにはどないすればええですか? UIKit? 選択されてるcellのindexPathを貯めておいて
cellForRowで
if selectedIndexPaths.contains(indexPath) {
cell.backgroundColor = .red
} 無理。
地道にスタンドアロンのアプリから作りなさい。
電卓とか勉強になるぞ。 >>302
お勧め
https://www.hackingwithswift.com/100
Swiftの基礎から応用までの100日のコース。
Day33(Project7)でWebサイトにアクセスしてjsonをパースしてテーブルビューに落とすサンプルが有る。
ヒントになるかと。
なんせこのコース、XcodeとSwiftのバージョンアップに逐次対応してるし、サンプルプロジェクトも実用的。
必要な部分は敢えてループなどを使わずに繰り返し書かせて覚えさせてくれるし、良く出来てる。
英語にアレルギーが無ければ是非。 そもそも2ちゃん(5ちゃん)ビューアーアプリは審査にもう通らないけどな >>305
iOSでTwinkle通ってるから、やり方あるんじゃない >>308
5chには公序良俗(apple基準)に反するコンテンツが含まれてるかららしい で、問題無い板だけをデフォにしてるんじゃないの?
それでも通らなくなった? そもそも5ちゃんのAPIの許可がおりなくなったから、
既存のアプリ以外は作れない どこの馬の骨かもわからんのにホイホイとは出さないだけだろう
ちゃんと作ってあとはAPIだけでとかでジムに交渉したけどもらえなかったなんて皆無だな >>311
広告が表示できるようにしないと5chのAPIは使えないって聞いたぞ 初心者にはまず与えられないだろう
最終的にもしかしたら全捨てになるかもしれないのに作る、作り始めるかというとそれも難しいだろなと思うけど
既存のアプリ以外作れないというわけではないということ。Electronによる掲示板ビューア Siki なんて新規のブラウザが5ch.netのスレで作られてる。もちろん5chは除外だが、実績を積んでとかないかな?全くそんな思惑もないだろうけど
ジムに直接になったのも(代理のヤツがまあ色々言われるようなやつなことは確かだが)、>>311のような単純なヤツのせいともある意味言える
>>313
それは絶対条件だな
てかあんま関係ないだろう、好き嫌いの話でしかなく開発できるできないの話ではないな
てか、Swiftで広告入れてのiOSアプリ作るやつとかフツーーーーに居るだろうにw デフォルトの basic スタイルの UITableViewCell の image view はどういう設定なのでしょうか?
サムネイル画像の実際の大きさにかかわらず、image view の大きさを一定にたもちたいのですが。
画像 - 1行のテキストラベル
↑
こういうカスタムセル作ってみたけど、画像の大きさにより、セルが大きくなってしまいます。
高さに固定値を設定するしかないのかな?
・ 試したこと
UIImage View の contents hugging priority を高くして大きくならないようこころみた。
しかし、intrinsic size ? までは画像が大きくなり、cell も大きくなった。 ど素人の者だがPC上で作ったアプリをシミュレータ起動しようとすると出来ない…?前のバージョンの普通にできてたのに どうでもいい質問を書くからスレ汚しになるんじゃない
解決したら解決策を書かないからスレ汚しになるんだよ >>319
なにイライラしてんだよw コロナストレスで頭の中沸いてんのか NGにぶっ込んどくね〜 マルチデバイス対応ができない!
StoryboardでContraction追加してもデバイス変えるとズレる・・・
コード使ったほうがええの? >>327
自己解決しました
Size inspectorのLayout Marginsで余計なオプションにチェックしてたのが原因でした
ありがとうございました 最近本を見ながらプログラムを始めたのですがiOSのバージョンを13.5に上げたところ、実機転送時にエラーが出てiPhoneで起動出来ません。
エミュレーター上では問題無く起動出来るのですが、何か再設定が必要なのでしょうか?
宜しければお教え下さい。 色々ググって見たところ本来あるiPhoneの設定→一般→デバイス管理のデバイス管理も表示されなくなっています。 Mac、iPhoneそれぞれ再起動した?
大体はそれでいけるはずだが >>331
レスありがとうございます。
再起動はしたのですが変化はありませんでした。
実機転送しようとするとナビゲーターエリアのエラー?箇所がbuldtime(2)となっており、その中がSwift Compiler Errorと表示されています。
尚、そこを広げると
cannot open file '/Applications/Xcode.app/〜
と
Could not build Objective-c module 'Darwn'
との記載があります。
これらの情報をもとに何かわかればお教え下さいませ。 Targets > Signing&Capabilities > Teamはサインインできてる?
Targets > General > iPhoneにチェックはいってる? >>333
レスありがとうございます。
はい。Teamの箇所は「私の名前(Personal Team)」と表記されており、Targets > General > の箇所はiPhoneとiPadにチェックが入っております。
新規プロジェクトでstoryboardにlabelを貼り付けただけの形で実機転送をしてみたのですが、それでも同じエラーが出てしまいます。
何度も申し訳ありません。 Window > Device and Simulatorsは設定しなおした?
もちろん有線で。 >>335
特に設定しておりません!
今iPhoneとMacを接続し、Window > Device and Simulatorsを開いたのですがここで何か設定をするのでしょうか?
確認をしてみるとconnectedには私のiPhoneの名前でShow as run destinationにチェックが入っている状態となっております。 Window > Device and Simulatorsは、
Unpair Deviceしてから追加し直す感じで。 >>337
お恥ずかしい限りですが、初めての更新後だったのでその当然の事もしてはおりませんでした。
今ググって見たところXcodeメニュー→Product→Clean build Folderの様な事が書かれていたのでやってみたのですが特に変化はなくやはり同じエラーが出てしまいます。
これであっていましたでしょうか?
deviseもご指示通り追加し直して端末側で信頼するを選んでもダメでした。 激重&最低最悪にわかりづらいUI
勝手に書き換えられる保守性最悪のstoryboard
複雑怪奇なswiftの文法
iOSアプリ開発環境、酷すぎるな
2020年にもなってこんな惨状だとは思わなかった
みんなドMなのか? >>340
複雑怪奇なSwiftの文法ってところは、同意。
その原因が、Swiftは値型中心の言語だって言う事。
つまり、String, Int, Float, Bool、これら全部参照型ではなくて、値型。
だから、継承できない。
解決策として、protocolが導入されている。
また、Genericsが複雑怪奇。
しかし、この動画が救ってくれる。
[iOSDC Japan 2019: Heart of Swift / Yuta Koshizawa - YouTube](https://www.youtube.com/watch?v=XySdL_Vahx0&list=PLod2oSGQp3W7aFHrbFb3ZzAs0iuRlKeJD&index=45)
しかし、値型中心の言語にする意味が良く解らん。メリット多いか? とりあえずXCode作った奴は今すぐ死ねと言いたい
本気で言いたい
今からでもMSかJetBrainsに買収されて、1から作り直せ このクソポンコツAirのCPUが焼け死ぬのが先か
俺の我慢が臨界突破して画面叩き割るのが先か
ほんとお前ら、よくこんな環境で開発できるよ
ガンジーもびっくりさ ほんとだよ
どうせただのSESだし最短でクビ切ってもらうわ
ただどうしても鬱憤溜まって、どっかに一言文句言いたくなっただけだ やるならお仲間のとこでやんなよ。
褒めてもらえるぜ。 仲間?ここにはiOS開発マンセーのドMしかおらんの? 一度もxcode storyboard sucksでググったことがない者だけ、私に石を投げなさい sucks これどう言う意味か解らん!
sucker = 吸う人、乳児、バカ >>351
多分、sucks = 最低、ムカつく
suck = 乳を吸う、フェラチオする、最低な行為 >>353
まちごた。
4 [VERB] no cont, V
If someone says that something sucks, they are indicating that they think it is very bad. (INFORMAL, RUDE)
suck = vi, ヒドイ状態である
e.g.
Xcode sucks. = Xcode is very bad. xcodeでrunした時に、build途中に左のパネルが勝手に開くのをoffにする設定はありますか?
殺してやりたいくらい煩わしいです 純粋な実行中はそうだな
だがデバッグのためだからやはりコードよりってのはナイな、実行しっぱなしで眺めるだけというのはそんなにないから
Preferences > Behaviors でできるんじゃないの >>358
出来るね!
例えば、Pausesした時に、Debug navigatorが開く。
ソースを見たけりゃ、Project navigatorへ変更できる。 こんなに設定値あるのか・・・疲れる
モニョモニョ動きまくって見づらい重い、storyboardのxmlは勝手に変更するし、
本当に余計なことばかりするIDEだな
エディタとしては、最低どころじゃない、アウトオブザ論外だわ
俺が、書いた、値を、勝手に変更するな、ボケが! >>360
まあ、Xcodeは作り直した方が良いかもね。
新規に。
古いソフトだからね。
Interface Builderと合体しなくても良かったと思うな。 SDKの設計センスのなさも極まってるし、作り直しなんかしなくていい
LSPだけ公開して死んでくれ 文句ばかり言う馬鹿だったか
ツールも使いこなせない、自称俺は賢いらしいけど、録なもん出来なさそ >>364
いちいち細かいことにツッコんでも無駄だぞ、文句言うけど大したことなさそうで、そんなんばっかだろから
そもそものも自分で探せないほどのなんだから おまえら、Language Server Protocolも知らんのかw
クソみたいな開発環境とライセンス商売にロックインして搾取されるその様は、
淀んだドブの中で腐っていく蛆虫のよう
ツール作る側がクソなら、使う側もクソ
はっきりわかんだね たかがGUI組むためだけに、たくさん文法覚えて、たくさんIDEの使い方覚えて、
イーオーエスエンジニアってすごいね! 井の中のイーオーエスエンジニア、LSPさえも知らず
そりゃxcodeサイコー!なんてキチゲエにもなりますわ どう見ても ID:W7xz+V5+0 がキチガイのような文なレスの数々w まあ、ここに来ても共感してもらえない事は分かったでしょう。 そうだな
信者しかいないところで正論言っても意味ないわな 久々に死語となった「ネット弁慶」って言葉を思い出した extensionって定義しまくるとコンパイル速度落ちたりする?
とにかくビルドが遅くて困ってて、引き継いだプロジェクトで原因もわからんから
ただただつらい >>376
ソース規模とかプロジェクト構成が分からないので確かな回答は出来ないけれど、ext定義でネックになるというのは考えにくいかな(syncのときしかここの処理は走らないはずなので)
大量のリソースを含んでいるとそれの最適化で時間がかかったりするよ
まずはプロファイルとってどのGradleタスクで時間が掛かっているか分析してみることをおすすめ
https://developer.android.com/studio/build/optimize-your-build?hl=ja#profile >>376
ファイル数が多いとビルドに時間がかかる。
8000ファイルがうちのゴミ箱mac proで15分くらい。 例えば、
extension Int {...}
とかすると、全ファイル読んで Int に新しい定義生やさないといけないわけじゃん
xcodeの初期読込とかこれで遅くなるのかと思った
コンパイルも同様 Swiftだとextension側に変更が入るとビルド時間が増えるケースはあるね
ビルドオプションにも依るかもだけれど
それと型推論を多用しているのならその解析で時間を食ってるんじゃないかな
「swift ビルド時間の分析」あたりでググってみては >>378
8,000files?
まじか?
そんなにデカいProject? Qiitaの記事に、マシン毎のビルド時間の計測結果が掲載されてたけど、見つからん。
削除されちゃったかな?
CPU Core数が多いとビルド時間が短い傾向があった。
CPU Clockはあまり関係無さそうだったけど。
無印Macbook 12inchは開発に向かないという結論だった。 [Xcode 11を用いたMac Pro (2019)のBuildベンチマークはiMac Pro (2017)やMac mini (2018)と比較してさほど速くはならないもよう。 | AAPL Ch.](https://applech2.com/archives/20200113-mac-pro-2019-xcode-build-benchmark.html) [ashfurrow/xcode-hardware-performance: Results from running Xcode on a non-trivial open source project using various Macs](https://github.com/ashfurrow/xcode-hardware-performance#xcode-hardware-performance)
なぜだか、Mac Pro,1 TB SSD,Late 2019 3.2 GHz 16-Core Xeon
の成績が奮わない。 whileを使って自分の親のViewControllerを辿ってて欲しいカスタムViewControllerを取得したいんやが
var viewController = self.parent
while iet viewController = viewController, viewController is customController == false {
viewController = viewController.parent
}
return viewController as? customController
だとうまく取得できんねん
ええ方法あったら教えとくれ 1回ビルドするのに10分掛かるから、ひたすら試行錯誤がダルい
2020年にもなってHot Reloadもない
storyboardは保守性最悪
storyboardやめてswiftで実装しようとしたらconstraintsが謎のワーニングだらけで死ぬ
型チェックだけじゃカバーしきれないワークアラウンドがてんこ盛り
translatesAutoresizingMaskIntoConstraintsは常にfalseにしなさい
stackviewはaddSubviewではなくaddArrangedSubviewにしなさい
互換性のためかと思いきや、しょうもないbreaking changeがたくさんあってStackOverflowのナレッジが半壊
CGRectMakeをCGRectにする前に他にやることはなかったのか
WWDC(笑)Swift5(笑)今まで何してたんだ?
公式ドキュメントが何の役にも立たないゴミ
xcodeが本当に本当にどうでもいいアニメーションだらけで激重
UnitTestのCLI実行も謎のオプションたっぷりで面倒くさい・激重
CIは長時間掛かってコスト爆上げ・激重
xcodeのバージョンとswiftのバージョンが連動する狂気
何もかもがゴミ
何も、かもが、ゴミ
iOSエンジニアって正気なの? >>387
探してる段階ではまだ型がカスタムコントローラではないので、isは使えない
if let targetVC as? cutomVCで判別するとよさそう Appleの中の人ってxcode使ってMacのアプリ開発してるんだよね?
こんなの自分たちで作って自分たちで書いてて、死にたくならないの?
俺だったら発狂して会社丸ごと燃やして死ぬレベルだわ 使いこなせないのはツールが悪いのではなくてお前の頭の問題だな>>388を見る限り
なんでそんなに自分に自信があるのか不思議なくらいだな iOSエンジニア様はさぞかし頭がよくて
プロダクトのことよりxcodeやUIKitのことを考えることの方がお上手なんでしょうなあ ↑皮肉で言っているつもりだろうが頭が悪いのが明らかな文だな Xcodeがゴミなのは同意するが
馬鹿とハサミは使いようで工夫すりゃあどうにかなる >>391
本当に困ってるんだ
君が本当にそう思ってるなら、それぞれの事実に対するアドバイスをもらえないか? >>395
なら最初から低姿勢で教えを乞えばいいのに、
煽り口調で助言が得られると思ってるところが
「頭が悪い」と言われる理由なのでは? QiitaもStackOverflowも
普通ならコード2,3行の説明で済む実装が
スクショ山盛りどーん!xcodeのあそこをクリック!あっちもクリック!モニョモニョ動いてクリッククリッククリック!手順手順手順!
こんなんばっかだよね
気が狂ったりしないのかな?
それともiOSエンジニアは既に気が狂ってる?
ドキュメント大好き人間なのかな? iOSアプリの挙動のログをずっと取り続けて、後からMacで確認する方法ってある?
起動回数とかボタン押した回数を記録したい >>400
そんなの自分のやりたいようにログ仕込めばいいでしょ
え? そういうのはGoogle Analytics使ってるアプリが多いよ 最近始めたんだけど、swiftUIって言語じゃなくてswiftでこう書くよみたいな書き方のことを指してる?
言語だと思って始めたんだけど頭こんがらがってるw やっぱりそうだよねw
確認取れて良かったです
swift5の勉強でいいんよね?w
今日の迷いを消して進めそうです
ありがと UIKitとSwiftUIではかなり違うよ。
当面、アプリのリリースを見込みたいなら前者を。 swiftUIがさらに強まってきている
そろそろ本番に使えるんやろか? >>406
SwiftUI内部でUIKitを呼び出してる。 なんでUIKit捨てないんだろう
APIは支離滅裂と言っていいほどバラバラだし
delegateとかかつて見たことないレベルで最悪に使いづらい設計だわ >>401
え?その方法を聞いてるんだけど?
>>402
iOSアプリにも導入できるんですね
ただネットワーク環境がない状態でログを取りたいと思ってます
Google Analyticsは翌日に消えてしまうようですね ログ程度のロジックもあへあへアホアップルのゴミみたいなSDKを使用する以外の発想がないクソバカiOSエンジニア
早くstoryboardぺたぺたする作業に戻るんだよ、この土方 iOSアプリでログ取ったりクラッシュのレポート?取ったりするのはGoogleアナリティクスがベター? >>412
おまえどんだけstoryboardにペタペタさせられてたんだよ
かわいそうに >>414
ありがとうございます!
なんとか実装してみたいと思います >>415
早くコンストレインス(笑)のワーニングを直す作業に戻れよ、土方 >>414
SwiftyBeaver実装できました
ありがとうございます!
ただ、アプリを一度終了(terminate)して、再度起動するとPodsが働かず、一切ログが取れなくなります
どのように対処すればいいでしょうか? iexploreでローカルファイルを更新して確認したら、ちゃんと保存されてました!
あざす excel vba歴約1年、swift歴約2ヶ月です。
iphone用のプログラムを作るチーム配属されたのですが、僕を含めて同期2名の同レベルスキルで、変数の型宣言で詰まってます。
マイナスを含む数値を扱うこともあるのですが、おおむねInt32の範囲で収まる前提にした場合、Int32を超える数値ではエラーになるまでは理解しました。
月間集計用に配列のInt32の変数を宣言して、配列の要素数をInt8(1年から5年分程度なので)で指定してfor文をするとエラーになってしまいます。
どうも配列要素の変数の型がIntでないとできないようです。
いっそのことInt32などをやめてIntに統一すればいいのかもしれませんが、全Intだとメモリー使用量も多くなるのは、プログラム的に好ましくないでしょうか。
それともある程度、変数の型指定した方が良いでしょうか。
アドバイスお願いします。 >>422
すごいなぁ。
近所のコンビニでレジ袋が3円です。ちょいと遠いですが1円のスーパーがあります。スーパーへ行くべきでしょうか?
こんな事を聞かれてもなぁ?
全部Intにしなはれ!
Int32, Int8ってのは、互換性のためにある。Clangの関数からの戻値がChar型だとか、Int(longではない)とか、そういう時に困らないために用意されている。
メモリ使用量を気にするなら、具体的に配列に何個要素が必要なのか?よく考えた方が良い。 >>423
レスありがとうございます。
Int32やInt8などとやたらと神経質っぽく型を指定するのは、後々のことを考えると好ましくないですよね。
なんか吹っ切れた感じです。
Intメインで適宜型を指定してやってみます。
ありがとうございました。 >>424
かつて、Win2Kを48MByteメモリで動かしてた時代を思い出した。
その時は、メモリ消費量を気にしたけど。
あと、RubyとかScript言語を使うのにすごい抵抗があったが、それも昔だ。 本当にstoryboardが1mmも理解できない
これ理解して扱えるエンジニア、どれだけいるの?
ここまで最悪な開発体験、PHPでもなかった Storyboardを扱えない開発者なんて皆無。趣味ならともかく実務ではそんなやつ見た事ない。Androidやウェブ開発、組み込み系から入ってきた人ですら扱えてる。 可哀想に。
storyboardにどの様なメソッドやプロパティが有るのか見て使ってみりゃ、storyboardの意味は分かるだろう。 理解できないのが理解できない。
モッサリ感以外は文句ない。 ほんとかよ
Holm 15Aより重いXCodeで、ちまちまタブ切り替えて目をこらして1つ1つプロパティ確認していくのか
ファイルを開いただけでdiffが出るし、要素を変更した結果のdiffは予測不能だし、似たような要素作ろうにもコピペ不可能だし
storyboardのプレビューと実行結果は全く違ってプレビューが罠でしかないし、
そしてコンフリクトしたら完全に作り直しだし
見て使ってみろって、ホットリロードもないのに毎回毎回ビルドしてちまちま確認するのか?
どんだけ暇な会社で働いてるんだよおまえら 反論してくれんかね
storyboardのプロ達よ
Appleは最高にクールで、Appleが発明したツール・言語は最高にクリエイティブで、iOSアプリを開発することは最高にエキサイティングなんだ
って言ってくれよ いや別に使いたくないなら使わなくていいんじゃない。Storyboard無くしてSwiftUIにすりゃいいじゃん。
どうせまたSwiftUIが1mmも理解できないとか言うんだろうけどw >>434
SwiftUIでは一気にハードル上がったな。
Function Builder, Custom Attribute, some, Generics, Struct, Value Semantics
つまりProtocol Orientiedなのだ。
英語が理解できないと詰む! >>434
レベル低いレスだなぁ
SwiftUIの対応バージョン知ってる?
大学生が作るオモチャの話してるんじゃねえんだわ・・・
toCで13以下切り捨てできるほどマイナーなアプリなら、そうしてもいいんじゃないの オレ理解できないんだけど!
↓
理解できない程度なら降りなよ
↓
おまえらレベルが低い!
なんですかこのひと 俺の書いた具体的な批判に一切反論できず
「嫌なら見るな!」
どこのテレビ局だよw
これをレベル低いと言わずして何と言うのか はぁーstoryboard全く理解できんなー。
俺様ほどの天才が理解できないんだから、ここの住民どもには全く理解できていないだろう。
↓
はぁ? 俺様が理解してないものを貴様ら愚民が理解できるわけがない。
きっとしょぼい案件しかやってないから理解しなくてもなんとなく処理できてるだけだろう?
↓
愚民どもには俺様の言ってる意味すら通じていないようだから、反論もできないのだろう。
俺様に理解できないものをつくるアップルはクソだな。
↓
やはり愚民どもはレベルが低いから話をそらしてきやがった。
お子様レベルのプログラミングしかできない愚民が恐れ多くも俺様にレスするんじゃないよ。
↓
全く愚民どもは頭が悪くて俺様の話しについてこられなくて困るわ。←イマココ to be continued storyboardとは
ファイルを開いただけでdiffが出る
要素を変更した結果のdiffは予測不能
似たような要素作ろうにもコピペ不可能
storyboardのプレビューと実行結果は全く違ってプレビューが罠でしかない
コンフリクトしたら完全に作り直し
これが全くの事実無根である、もしくはこの通りであるが糞ではない
と言ってみてくれw >>441
>ファイルを開いただけでdiffが出る
俺的に同意できんのはこれだけだな。ツールの使い方知らないと苦労するね。まぁ出来ないなりにクソアプリ開発頑張れよ。 別に反論ではないが似たような理由で、UIはソースで書く派になった。
でもstoryboardはところどころメリットはある。すべてのデバイスでの結果が素早く見れる点などはメリット。でもそれはソースで書くことによってデメリットを潰しているから感じるメリット。
可能なら一度ソースで書く派になってはどうか。 そうだよ、クソアプリの保守
キチガイみたいなコードを書きやがった前任をみんなで呪いながらバグを潰す日々
>>446
全部srcで書くべきだよな
storyboardだけは存在してちゃいけないわ
マジで害悪、全人類の敵
>>445
そうだよ、全く理解できない、というか共感できない
不要な機能がゴチャゴチャと多すぎ
xcodeは今すぐ開発中止して、IntelliJのプラグインにでもなってほしい
よくこんなプロダクトを世に出せるわ
恥ずかしくねえのかな よくわからんけどこの空気の読めなさはチームにいると面倒くさい人のそれだなぁ 2chで空気読むわけないだろ
ましてstoryboardなんか信仰してる狂人の巣窟で
iOSエンジニアの空気なんて1nmも読めんわ 来週からiOSアプリ開発案件に配属されるから見にきたけどstoryboardってのは使わないほうがいいのか? storyboard はswiftUIに移行することになりそうだから問題がなければswiftUIのほうが良いかも、ただ現状のswiftUIは問題が多いのよね まともなフロントエンドやAndroid、クロスプラットフォーム開発したことあるなら、ビビるで
あまりの糞さに >>456
アサインされてしばらくしたら感想書きにきてくれよな 配置規則の優先順位や必要条件をしっかり把握して使えば忌み嫌う様な物じゃ無い。 storyboard嫌いなら使わなきゃいいのに。
文句言いながら粘着してストーカーみたい。 誰が使いたくてこんなゴミ使うか
1度このstoryboardに騙されたが最後、2度storyboardから逃げられない地獄の片道切符だぞ
Appleのボケナスエンジニアに言えや クソクソ言ってるのは1人みたいだけど実際の現場での普及率的にはどうなの?
クソでも現場で使われてて需要が多いなら導入する価値はあると思うが storyboard sucks
約 2,340,000 件 (0.38 秒)
ほーん >>464
作るアプリの複雑さも考慮すべきと思う。
3日で出来る単純なアプリなら問題は少ないけど、アプリが肥大化するとデメリットが噴火する。
あと、デメリットに気が付いたけど時すでにお寿司ってパターンもあるだろうから、現場で使われていることを基準にするのも危険。 MVCパターンを実現するためにああなってるんで
別に「俺のアプリは俺が自力でビューとコントロールを実装するぜ!」で
後々、問題が起きないならいいんじゃねーの。
社員じゃなくて個人開発者なら 約数十万の数値を基にシミュレートする場合、C++とDbより配列使う方が計算結果が速いんだが、Swift+Iosでは実行速度やメモリ確保で影響は気にしなくてもいいもの?
試しにSwift+シミュレーターでは、1秒以下且つ15Mb以下で結果が出たんだが...
そもそもSwift+Iosベースに置き換えるなら計算基をDb化してオーバーヘッドを甘んじるのが常套手法かな?
漠然的な質問ですまん >>467
> MVCパターンを実現するためにああなってる
絶対に違うね
「馬鹿なエンジニアでもUI作れますよ!」というプロパガンダのためにひり出されたのがstoryboardだ
そして騙された本物の馬鹿たちが作り上げるゴミ、ゴミ、ゴミの山
それはまるで20年前のPHPerたちの狂想曲のよう
PHPよりタチが悪いのは、storyboardのテキストは予測不能に変化し、
xcodeというGUIなしには一切変更不可能なバイナリデータであることだ
そしてそして、醜悪 of 邪悪なViewControllerとstoryboardの悪魔合体
1度storyboardを使ったが最後
エンジニアのstoryboard力(笑)に依存して、実装はViewControllerとstoryboardに泣き別れし、
100人が100人、個性豊かなコードを書いてくる
WOW, It's diversity!
10年前のMVCフレームワークやフロントエンドでさえ、こんな汚物はなかったぞ
よくこんなものを後発で出せたもんだな
恥を知れ 別にstoryboardがさ、htmlやPHPより昔、
チンパンジーかジャワ原人が洞窟に絵を描いて産まれたものだったなら、もう少し寛容にもなれるさ
ところがどっこい、storyboard(Xcode 4.2)の登場は2011年だぞ!
PHP 5はとっくにプロダクトで使われ、html5やcss3が使えるようになってきてる時代だ
そんな時代に、いったい何だい?このhtmlにもPHPにも劣るゴミは
どういう思考回路したら、こんな支離滅裂な文法の言語を再発明する気になるんだい?!
それから毎年偉そうにWWDCだバージョンアップだ何だ・・・
なんと8年!
ようやく出てきたSwiftUIにウレション漏らして、
当時ですら時代遅れの肥溜めstoryboardを8年間泳いだウジ虫たちが羽化して飛び立つ
救いようがないほど頭の弱いメクラ信者ども
(なお2020年になってもSwiftUIをプロダクトでは使えないという事実)
storyboardがイイとか言ってるiOSエンジニアさんさ、
君ね、本当に20世紀からタイムリープしてきたチンパンジーにしか見えないよ
周りから見たらね
猿の惑星にきた気分さ StoryBoardとViewControllerの関係を理解できてないな... StoryBoardってXMLじゃないの?
なんかQiitaあたりでそんな話を見たことあるけど
バイナリデータなの? StoryBoardのおかげて初アプリ作れましたー ^^v >>472
XMLっぽい何かであって、文法・規則が完全にブラックボックス
xcode以外からの編集は不可能だから、実質バイナリデータと同義だよ >>468
このスレは、基本、初心者向け
応えてくれそうな知識持ち合わせてるヤツ少ないけどね
まあ結果優先ならdbより連想配列化した方が無難かな
その配列構成にもよるけどね
てか、数十万データ程度でシミュレートってなんだろ?
案外、関数化した方が配列要素少なくできんじゃね? >>478
シミュレートと言ってもとある占いアプリ案件を安請け合いしたツケが面倒臭い計算する羽目にw
しかもプログラム知らないくせにやたらと口煩いクライアントでマジ大弱りなんですよw
配列が無難のようですが、面倒なのでSqliteで対応して納品することにします
ありがとう RxSwiftって公式サイトないの?
ググってもQiitaとかStackOverflowばかり出てくる
GitHubもチュートリくらいしか見当たらない
みんなどこからこの謎のライブラリの使い方学んでるんだ? >>480
Recommend seeing the playground included in the official git archive. >>480
ヒント!
1. アルゴリズムの直交化
2. イベントの直交化
cf. 計算科学用語でA, Bが直交であるとは、独立であるという意味。 >>481
もう一つヒント
What does X in Rx stand for? >>484
へ?解りやすい例が公式サイトにあるじゃん。
debounceの例が!
例えばkeyboardでr xxx swiftと入力したとする。
xの部分はチャタリングでxを三回pressしている。
発生するkey press eventが”rxswift”で有って欲しい時に、debounceを使うのだ。
debounceを使うと、rxxxswiftと入力されるのを防ぐ事ができる。 米国共和党は、チャイナ共産党の最高首脳部の資産凍結を検討、ってどう言う意味?
資産凍結ってのは、遺産相続時の口座凍結と同じ?
遺産相続時、相続人は遺産分割協議書が無いと、解凍できなくなってしまうを経験したけど、それと同じ?
自分の口座であっても引き出せなくって事?
俺、米国銀行に口座作った事無いっす。 >>485
debounce = de + bounce = ポコポコ跳ねるのを防止、キーボードのスプリングがポコポコ跳ねるのを禁止
って意味なのかな?
今更、気がついた。 >>487
de- = off, away, aside
なるほどぉ
debug = away + bug = 虫取り >>489
これ誰も知らないの?
どうなってんだiOS開発って・・・ SwiftUIが出るまで(いやまだ事実上使えないわけだが)の、10年近く
この完全に狂ってるとしか言いようがない delegate で頑張って、
信者は毎年嬉ションを漏らしながら高額所場代をAppleに払い、
ギリマシな糞であるRxSwiftは、StackOverflowとQiitaでコピペ合戦してるというのか?
なんだここは・・・地獄か?PHPより酷い環境がこんなところにあったとは storyboardに親殺された奴がいるのはこのスレですか? いいからオフィシャルドキュメントくらいまともに書いてくれ
iOSエンジニアはガイジしかおらんのか ならここで聞くなバカ。
お前も知らんくせに偉そうなこと言うな。 意味不明。こんな漠然とした質問、君は答えられるか? 「食べるラー油は食べたことないな」
「何食べてる?」
は? 例えばタップアクションの定義に、みんなstoryboardぺたぺたするのが一般的iOSエンジニアなのかね >>502
正直なご意見!
俺の憧れの実装は、Key Pressと同時に検索が始まるっていう、TextFieldだ。
つまり、検索ボタンが無い、検索Interface、UI/UX。 >>509
お前この程度のレベルなのかwww
storyboardのグチ言う以前の問題じゃねぇかwwwww
[SDK]iPhoneアプリ開発初心者質問箱49[touch][iPad]
http://egg.5ch.net/test/read.cgi/mac/1538778915/
>>216
>uinavigationbarに戻るボタンを付ける方法を教えてください
>back buttonという項目にbackと入力してみましたが変化がありません
>https://i.imgur.com/ZnvocdG.jpg >>511
早くXcodeのGUIで@IBActionを付ける作業に戻れよ、土方(笑) Xcodeもアスペ
言語もアスペ
エンジニアも>>485-488アスペ
アスペ指向iOS開発 否定しないのかwww
顔真っ赤っかじゃねぇかwwww >>514
はい、明日ぺです。
いま、恥ずかしくて死にそうです。
ウソ! >>514
君にはいったい何が見えてるんだ・・・?
初心者スレからやってきて、ぼくのさいきょうのストーリーボードをけなすな!!って
顔真っ赤は君やんw コードでもstoryboardでも実装できないから愚痴ってるんだね。かわいそうに。
素直にコードでの実装方法教えてくださいって言えばいいのに。 RxSwiftなしでの実装方法
あのキチガイみたいな設計のdelegateと、激重storyboardからIBActionぺたぺた
それら以外にあるなら教えてくださいよ
ほらほら delegateの設計の例えばどの辺りがキチガイみたい? >>510
普通にdelegate使っても、プロパティオブザーバー使っても出来そうじゃない?
逐次検索はウザイと思うけど。 >>519
例えばUITextField
同一画面に複数のUITextFieldあって、そのVCにdeleate実装する場合、
全てのUITextFieldから同一deleateが呼ばれて、それをif文で分岐して下さい
って、どういう神経してたらこんな設計になるか理解できないよ
入力に介入したい場合これ使うようだが
textField(_:shouldChangeCharactersIn:replacementString:)
このメソッド名、引数名から想像できる機能からあまりにも掛け離れてる
しかも必ずreturn falseしてself.textFieldに対して副作用バリバリで実装って
正気の沙汰とは思えないよ >>522
歴10年なんて最後発なのに、よくこんなゴミ屑みたいな設計になったな・・・
そして10年間・・・
、z=ニ三三ニヽ、
,,{{彡ニ三ニ三ニミヽ
}仆ソ'`´''ーー'''""`ヾミi
lミ{ ニ == 二 lミ|
. {ミ| , =、、 ,.=-、 ljハ
{t! ィ・= r・=, !3l
`!、 , イ_ _ヘ l‐' 今まで何してたんだ?
Y { r=、__ ` j ハ─
. r‐、 /)へ、`ニニ´ .イ /ヽ
} i/ //) `ー‐´‐rく |ヽ
l / / /〉、_\_ト、」ヽ!
/| ' /) | \ | \ a-bone
まあ、どの言語にも、なんじゃこりゃ?って仕様があるよねぇ。
JavaScriptのあれとか。 >>525
JavaScriptのundefinedがいろんな意味があるとか。 最初から振り分けて宣言すればいいよね
山盛りてんこ盛りのif elseが好きなの?? 同一delegateが呼ばれる設計に自分でしてるのに
どういう神経してたらこんな設計になるのか理解できないとは・・・ >>523
>textField(_:shouldChangeCharactersIn:replacementString:)
何か勘違いしてるのかもしれないけどとりあえず必ずfalseを返す必要なんて全くないよ
shouldChangeにNoと答えたい時にfalseを返す
名前が長くてすぐにはわかりにくいのは同意するが
textField shouldChangeCharactersIn (the range) (with the) replacementString => Yes/No
なので機能とはかけ離れてない
入力された文字列をテキストフィールドに反映せず
違う文字列を反映する用途にも使えるけど
メソッド名から分かるようにそれは本来の主要な用途じゃないから >>532
では
> 入力された文字列をテキストフィールドに反映せず
> 違う文字列を反映する用途
に最適な実装は? >>533
最適な実装は状況によるから自分で考えてね
一ついえるのはdelegateにしても副作用にしてもメソッド名にしても君は一つの側面しか見てない
選択肢を多面的に見てトレードオフの判断ができるようでないと最適な設計選択なんて到底無理
自分の考える代替案と比較して
クソみたいに見える設計にはどういうメリットがあるのかを常に考えるみるといいと思う >>534
偉そうにレスしてきたからどれ程のもんかと思えば
> 最適な実装は状況によるから自分で考えてね
ダッッッッッッッッッッッサwwwwwwwwwwwwwwww
UITextFieldを継承した独自のTextFieldを作るとか、RxSwiftを使うとか
それすらも提示できないのか
あまりに哀れ過ぎて言葉にならねえぜ
Apple神が神delegateを設計したのだからそれが最適な設計!!
delegateを叩く奴は考えなしの低脳!!!
ってか?
そっくりそのまま返すぜ
「君は一つの側面しか見てない」キリッ あ、後出しで「考えさせた(キリッ)」とかいらんぞ
やはりiOSエンジニアは頭storyboardのクソバカしかいないようだね
井の中のiOSエンジニア、10年間まるで成長せず
哀れだねえ Appleの作った言語に文句言うなら自分で変えれば良いじゃない、どれだけ文句を言っても変えられないなら使うしかないでしょ
与えられたオモチャが使いにくいからって遊ばないより工夫して遊ぶ方が楽しいじゃないか。
それに作り手は使いにくい物を作ろうとして作ってないと思うよ、少なくとも使わせてもらえてることは忘れてはダメだとおもうんこ 質問です。
どうやって画面全体(UIView)をpinchで拡大・縮小するんですか?
UIViewの上に設置したオブジェクトはpinchで拡大・縮小できました。. >>537
嫌なら使うな!
Apple神が作ったものが使いにくいはずがない!
delegateとstoryboardは楽しい!
delegateとstoryboardが使わせてもらえる幸せ!
清々しいまでの思考停止
そりゃこんな腐った設計のまま10年時が止まりますわ^^; 言語がクソなら集るのもやはり蝿だな
さうがにペチパーと同じレベルだとは思わなかったが
iOSエンジニアにもペチパーと同じく名誉ある名前を付けてやりたいな >>533
イライラをやり過ごす方法
1. イライラしてる自分を遠くから眺める
やりたく無い事をやらなきゃいけない。なかなか着手出来ない。
やっても悪い結果が生じそうで、目を背けたい。
そんな時の思考方法
1. 後回しにすれば、後日締め切り間際に困るのは自分
2. 困って追い詰められた結果、出てくるのが良いアイディアとは限らない
3. 仮に悪い結果が生じても、立ち直って出直せば良い 言語・SDKがクソ過ぎて発狂の挙げ句精神論に落ち着くiOSエンジニアwww >>543
俺が書いた事実・批評に対して、
全て具体的な反論が一切なく、
おまえがわかってないだけ、Appleを信じろ、挙げ句の果てに精神論
これがiOSエンジニアにとっては発狂ではなく自然状態なのだとしたら、すげーわ ほんとここまで専門性皆無で無能揃いなスレ見たことない
ペチパー以下だぞマジで >>535
>UITextFieldを継承した独自のTextFieldを作るとか、RxSwiftを使うとか
このレスを見てなんで一側面しか見れないのかよくわかったわ
どちらも単に抽象化レイヤーを一つ追加して役割の一部を担わせるだけなんだけどそれが理解できてない
その原因は抽象化思考力の欠如
RxSwiftだってtextFieldに対しての副作用バリバリで実装してる
Observableという抽象概念で包んでdelegationじゃなくobserverを活用するためのレイヤーを一つ追加してるだけ
抽象化思考ができないから他人に用意されたAPIという目に見える側面しか捉えられない
ソフトウェアを作る人間としては致命的だから人格とともに克服しよう >>542
>言語・SDKがクソ過ぎて発狂
クソSDK
若者と古参の考え
1. 言語・SDKがクソ過ぎて発狂、と主張
2. 金になるけど、脱落者多そう >>547
じゃあその豪語してる一側面以外の見方で、他のやり方言ってみろよ
ないんだろ?
他人を罵倒する言葉だけ達者だなw 【悲報】UIをソースで書くことをすすめた俺忘れられる >>550
おねしゃーす
どうやって画面全体(UIView)をpinchで拡大・縮小するんですか?
UIViewの上に設置したオブジェクトはpinchで拡大・縮小できました。. >>552
それはRxSwiftでは実装できてるって事ね? >>553
いえ、ID:AsdfomoK0とは全然関係ないですがおねしゃす >>550は流れとしては>>549へのレスだな
じゃ、>>549とはあくまでも別件という事で >>552
画面全体をUIViewじゃなくUIScrollViewにして
その中に拡大・縮小したいUIViewを配置 >>557
これだよ
プログラムの話をしているはずなのに、一生懸命文章で手順を説明しないといけない
他の言語なら明示的に「こういうコードを書くといいよ」で済む話が
コピペで数秒で済む話が
iOSエンジニアときたら
曖昧模糊とした説明を一生懸命書いて、受け手は一生懸命その説明を解読しそして狂ったstoryboardと格闘し、
コピペの何十・何百倍もの時間が掛かかる
挙げ句の果てにひり出されるのは、長大で支離滅裂で解読不能なstoryboardのdiff
たった数個のViewを置いただけのはずが!どうしてこんなことに!
なぁ、恐ろしいほどの生産性の低さだよな?
なんか擁護・反論ある? >>557
ありがとうございます
なるほど
画面領域が狭いから動かない感じがしてたので、スクロールビューにすればいいんですね
試してみたいと思います
随分VC作っちゃったのでちょっと面倒ですが・・TT 井の中のiOSエンジニア、大海を知らず
この狂気にiOSエンジニアは気付かない
悲しいね >>558
Storyboardのほうがわかりやすいです
以上 >>549
>じゃあその豪語してる一側面以外の見方で、他のやり方言ってみろよ
抽象化思考力の無い人間の典型だね => すぐHowに飛びつく
Whatを定義せず背景にあるWhyを理解しようとしない
Howのレイヤーでしか考えられないから他人の用意した設計に従う以外の道がなく行き詰まる
事実の指摘を罵倒と感じてるうちは進歩しないよ
がんばってねー >>559
ほらな!
たった数行の修正で済む話が!
なんて面倒臭い!
swiftで書いたりGUIで描いたり行ったり来たり!
そしてたった数行の修正で済むはずの簡単な話が!
おまえの全ての作業・時間が無駄になって、今からあのクソ重いXcodeのstoryboardプレビューをコネコネするんだよ!
おまえもさっさと気付いた方がいいぞ!
こんなキチガイみたいな環境で開発してたら、脳みそ腐ってここの連中みたいに
iOS開発しかできないゴミ屑みたいなエンジニアになって人生終わるぞ >>562
はいはい、delegateはクソに関して、何一つ反論なし、と
事実の指摘をノラリクラリかわすだけの胡散臭いペテン師になるのが
iOSエンジニアってこったな
言語もSDKもエンジニアもクズばかり
これがiOSだ! >>563
サーセン、エンジニアじゃなくて素人アプリ作成者です
Swiftのおかげで素人でもアプリを作れるようになってありがたい限りです
Appleがめざしてるのってそっちなんじゃないでしょうか?
高度な仕事はプロがやって、身近なアプリやプログラムは自分で作ってしまうような未来 >>561
そうだね
君が作れる「チンパンジーでも3日でできるはじめてのiOSアプリ」みたいなアプリならそうでしょうね
その先を見通せる力付けた方がいいと思うよ >>565
それにしたって異常にデキが悪すぎなんだわ
本当に異常にね、それが何年もの間放置されている
君がまだアプリ作成始めたてで、ここのキチガイ信者のように頭が凝り固まってないなら
もっと他の環境見た方がいいよ >>566
>>567
ちゃんとSwiftUIのやばい匂いは嗅ぎ分けてます >>568
君はだいぶまともな感覚を持ってると思うよ
俺もほんの少し・・・本当にほんの少し叩き過ぎているかもしれないが
それでもXcode, storyboard, iOS SDK、こんな右を向いても左を向いても過去も未来もクソまみれな環境を
何の疑問も持たずにマンセーしてる連中は、ちょっと外の世界ちゃんと見た方がいいよ >>558
君はまず、何をしたいのかハッキリしなきゃ。 >>558
こんなところで愚痴ってるのが一番生産性が低い。 コード例でレスすらできないにわか共だから仕方ねーだろw なっ番長w 早くstoryboardを描く手順を書く作業に戻るんだ 具体的に何を実装したいか聞かれると黙るんだよな(苦笑) ちょっと相談させてください。
Swiftの勉強を初めて最近色々アプリを作ってるんですが、
UIやUX周りがダサくなるんです。
どういったサイトや本を参考にしたら上手く作れるかや
どんなことを意識したらよいかなど教えてほしいです。 >>576
UIもUXも自分がいいと思ったもの・悪いと思ったものをカタログ化して
なんでそう思ったかを記録して振り返るのが力をつける一番の近道
UIの参考本やサイト
1. 基礎を学ぶ => ノンデザイナーズ・デザインブック
2. いい例・悪い例を知る => モバイルデザインパターン(今となっては例がやや古い)
3. 自分がいいと思うデザインを見つけて分析する => dribble.com/mobbin.design/mobile-patterns.comなど アスペ君みるとiOSアプリ開発が解放された最初の頃に
開発者スレにやってきたflashプログラマが
ボタンパーツでアクションを呼び出さずに
「画面のタッチされた位置を直接取って矩形領域単位でif分岐させて
実行させるにはどうすればいいですか?」って聞いてたのを思い出す。 >>579
環境に順応できないやつってどこにでも少数いるもんだよな。
チームでやってるとこういうやつに限って声がデカくて全体をかき乱す。 >>578
ありがとうございます!!
やってみます flushガーとかいまだに言ってる老害って、だから嫌われるんだよオマエはww iOSアプリ開発の解放初期にはケータイ用フラッシュゲームの開発者に
仕事が次々委託されてフラッシュアプリしかやってない人々が
Objective-Cとインターフェイスビルダーの前で爆死してたから。
やっぱり前提概念が違う畑だから「なんでこうなんだ!」って叫びながら… (おかしいな...ねらーは煽れば顔真っ赤にして答えをわざわざ長レスしてくれる間抜け揃いのはずなのに...) ちょっと質問なんですが、よろしくお願いします。
任意の指定範囲内から数値をランダムに0または1つまたは複数の値を取得できる場合があるとした時、
クラス化と関数化双方のメリット、デメリットはあるのでしょうか
と言うのも、Swiftチップス本を見ると、やたらクラス化例が多く、例えば反復的なロジックを通してある解を得るのにクラスからクラスを多重的に継承して解を得るサンプルがありました。
個人的には、範囲や得られる解の数なんかはクラス扱いするのは良しと思いますが、その解自体は、クラス化するより単純に関数化してコールバックさせた方が無難と思うのですが
Swiftって、クラス化実装して使う言語なんでしょか? >>587
クラス化、関数化、コールバック
この辺の用語をお前の独自定義で使ってるということから理解したほうがいい
インスタンスメソッド、クラスメソッド(Type Method)、グローバルメソッド(global function)はスコープの違い 関数化したとして、それをどこに置いてどうやって呼び出すかという話だね 複数の値を取得するときに重複を許さないのか書いてないのでアマチュア 重複あり
重複なし
両方に対応
のどれなのかという意味
使う目的次第で変わるなら「両方に対応」 つうか、なぜ敢えて
「任意の指定範囲内から数値をランダムに0または1つまたは複数の値を取得できる場合があるとした時、」
という条件を付けたのか。 レンジでランダムな数値を取得なんて、わざわざ採り上げる様な話じゃ無いだろうに。 >>593
どういう処理を関数にしようとしてるかを書くことで回答する側の助けになるかもしれないと思ったんだろ
どういう情報を提供すればいいか初心者は判断できないんだから生暖かく見てやれよ
論点と関係ない箇所をひたすら掘り下げても意味ないぞ >>595
基本的に同意。
処理内容の提示に何らかの意図が有る可能性も含めて、その点を指摘する事によって、今後の質問の仕方の改善に繋がる、または意図的だった場合には論議の方向を本来質問の目的であった筈の内容に修正できると思って敢えて指摘した。 世界各国の主要都市の緯度経度データを使用したアプリを作っています。
緯度経度のデータ構成は、都市名/緯度/経度/国コードで、約74000データあります。
とりあえずテキストファイルの主要都市の緯度経度データを読み込んで配列化してみたのですが、
読み込んで起動するまでに30秒近くかかるので、直接ソースに書いてみたら数秒で起動できるようになりました。
読み込んで、配列化したデータをmapやfilterなんかを使って都市名表示や同経度の都市を表示するところまではできたのですが、
たまにですが、表示にもたつくときがあります。
配列を使って処理するのには、74000データは多過ぎるのでしょうか。
データベースのスキルが無いのですが、データベース化して処理するのがよいでしょうか。
アドバイスお願いします。 >>598
シーケンシャルリードで30秒はリード処理見直した方がいいね
後、配列map filterも100万レコードでも問題ないと思われ 何に表示してるか解らんが、表示処理見直してみ
多分、表示項目数が多いと遅延するんじゃね? 緯度経度は二次元データだからmapにすんなりキーとして入るまい
検索に問題ありそう >>600
一般的ならstructを配列に入れるだろw
まさかID:n9K7hSn9d 4次元配列でやってるとかなん? >>599-605
アドバイスありがとうございます。
var 配列[74000][5]という変数にデータをいれてます。
struct^^; データベース^^; もう少し、勉強してから作ってみます。
すみませんでした。ありがとうございました。 >>598
8bit, 16bitマシンじゃあるまいし、74,000個のdoubleデータ, Stringデータは、64bitマシンでは問題無い。
100万個でもOK.
10億個(1G個、10^9個)だと厳しい。1億個をメモリに置いて、残りをDiskから読むというCache Algorithmを考え始めないとイケナイ。
大抵は、よくヒットする1億個を先読みするとか、そんな感じの処理をすればよろし! >>607
1億個を格納できるCacheを用意して、1,000万個単位(page)でCacheへ読み込むとする。
次つぎとpage単位でCacheへ格納していくと、いつかはCacheは満杯になる。更にpageをCacheへ格納したい時に、どのpageを破棄するのか?
これの選択方法がCache Algorithm。 今時の高性能マシン、調べた。
768GBメモリ、140万円
1.5TBメモリ、250万円
意外と手の届く価格だ。
[Mac Proタワー型を購入 - Apple(日本)](https://www.apple.com/jp/shop/buy-mac/mac-pro/tower#)
128GBDDR4 ECCメモリ1枚って、How much? ご存知の方教えて下さい
Xcodeでアプリを作成し実機に転送をしてもしばらく時間を置くと起動しなくなります。
ググって見ると無償は1週間期限があるとの事なのですが、今はそれも無いのでしょうか?
それとも何か他にやらなければならない事があるのでしょうか? >>614
そうなのですか?
Macと繋いでる間は問題無く起動するのですが外すと落ちる様になってしまうんですよね・・・。 >>556
UIをプログラミング言語で書くこととXMLなどの独自書式で書くことと専用ツールの独自バイナリデータで書くことの間を流行が行ったり来たりする現象をなんて言ったっけ? >>587
クラスの方が設計が簡単で、設計しないなら関数の方が簡単 >>618 一生の中で一度だけ使ったことがあったな。
Swift好きだよ。 あれ? 掲示板のビューワーアプリ(5ちゃんではない)を作ろうとしてるんですが、データを取得するだけでなくこっちから送る(書き込んだりスレ立てたり)ことが出来るAPIってありますか? bakusai.com
なんて初めて見た。2014年の投稿があったから、古いサイトなのね。
POSTで投稿するんじゃ無いの? >>626
POSTっていうの使うとデータが送れるんですね
それを使えるAPIはありますか? 爆サイ.com専用のAPIは公開されていないようなのですが、
掲示板サイトに使える汎用APIのようなものがあるのでしょうか?
それとも無いなら自分で作るしか無いのでしょうか? >>633 SwiftWasm がクラウドで動いてる。
Run Swift in browsers
SwiftWasm compiles your Swift code to WebAssembly.
https://swiftwasm.org
先頭の Hello を こんにちは に変更してCloud のSwiftでコンパイル wasmを出力して実行
https://i.imgur.com/Jpqs0zH.jpg
ブラウザはiPhone のSafari ドキュメントとビューをいかにして分離するかがGUIライブラリの重要課題になるわけだけど、
SwiftUIの場合、ビューのための変数をドキュメントが持つ必要に迫られる印象。
構造体の配列をリストでビューに表示する場合を考えてみる。
構造体に相当するリストアイテムがクリックされた時にダイアログを安全に一回だけ表示するには、
ダイアログ発火用変数を配列の要素それぞれに追加せざるを得なくなる。
ダイアログ発火用変数が共有でひとつしかない場合、alertイベントが全リストアイテムに対して発火する危険がある。
SwiftUIはダイアログを一回しか表示しないよう安全に忖度してくれているが、
それが良いことか悪いことか判断しかねる。
以下はSwiftUIでダイアログを表示するサンプルの解説ページ。
https://www.hackingwithswift.com/quick-start/swiftui/how-to-add-actions-to-alert-buttons
たったひとつの変数(解説ページのサンプルコードのshowingAlert相当)では、
複数あるリストアイテムのタップイベントからのダイアログ表示にうまく対応できないことには、
実際にプログラムを動かしてみないと気づけない。 インスタみたいに画像の1枚目は右スワイプすると前画面に戻って2枚目以降は前の画像に戻る動きってどうやってんだ
実装したことある人教えてくだされ 普通に条件分岐で行けそうだと思うけど、駄目なのか? Navigation Controller付けてるんだけど、UIButtonでトップ画面に戻ると、Navigation Barが消える・・・
どうすればいいの? guardでassert+return書くのって考え方間違ってる?
throw書くのかったるいっていうのが拭えないや
Swiftだとfunctionにthrowつけないといけないのがネック
面倒くさくてつい多用しちゃうけど美しくない 質問スレとかあったらすまん
String型の文字列を計算したいのだがどうすればできるか教えて欲しい
例えば
var str = ''1+1''
だったら、計算してstrが2になるような
自分はswift始めたばかりで本見ながらやって、本の電卓のアプリを改良しようとしたけど詰まった
わからない所があったらすぐ付け足す >>643
以下ページはどうかね?
逆ポーランド記法のアルゴリズム(Xcodeでswiftを使った電卓アプリ作り)No.1 備忘録
https://qiita.com/akidon0000/items/c5fb48d91fe5b77f6a59 >>643
1. 自分で数式パーサーを書く
2. JavaScriptCoreを使ってeval
3. NSExpression
4. その他ライブラリを探す
制限はあるけどとりあえず2か3が簡単 >>646調べたらNSExpressionのやつが合ったので見よう見まねでやって見た
https://pastebin.com/RxiVetXJ
labelB.textのところに
initializer 'init(_:)' requires that 'NSNumber?' conform to 'LosslessStringConvertible'
というエラーがでる
そもそもここ以外が間違ってるかも… 間違ってると思う箇所はきちんとリストアップして優先度を決める。
エラーには自分なりの説明が出来る程度までは対処する。 あ、すまんエラーのとこは自己解決した
646ありがとう〜 3で出来た
さんくす 何度もすまん
NSExpression って%使えない?
%を入れようとするとエラーになってしまう >>650
使った事ないけどエスケープしたらどうなんの? Xcodeのダウンロードができない、、、
5GBくらいまでDLしてたのに最初からに戻った 2度目のDLはまだ500MB、、、
iOS14にしてからやった方がいいのかな 当たりを引けるといいね…
https://gigazine.net/news/20200917-apple-ios-14-release/
さて、このXcode12 GMですが、面白いことに同一URLからDLしても異なるバージョンのXcodeが降ってきます。
中略
もちろんアタリを引くまで10GBのDLを繰り返す必要があります。 いやなんじゃそりゃ
もしかして今アップデートしない方がいい? あわわ。iOS14にしたらSiwftUIのDividerで表示される水平線が1本から3本に増えてる。
ネットを騒がす各種人気有料ゲームアプリ起動できない不具合に比べたら大したことないけど。 SwiftUIのalertダイアログのOKコールバック内でUIを操作すると Index out of rangeを吐くようになった。
これは仕様なのか不具合なのか。 仕事で使ってないならしばらく11でもいい?
12にしたらswiftの書き方というか何か変わるの? バージョン12に上げずに実機テストする方法ないですかね?
容量ないからアップデートできない alertコールバックは関係なかった。ForEach()をarray.indicesで回したのが良くなかった。
配列が動的変化する場合は、配列要素を受け取るタイプのForEachを使う必要がある。
メモリチェックが厳格になったのかも。 xcodeのバージョン12が異常なほど遅いんですがどうしたらいいでしょうか?
もしかして待つしかない? C#アプリがmacOSで動いても ( ´_ゝ`) フーンでおしまいだったじゃん。 GUIも動けばふーんで終わらなかったと思うんだがな
swiftのほうは見た目しょぼいけど単なるwin32apiラッパではないライブラリが備わっているようだ ん?winからアプリのリリースできるようになったんか? >>675
で、Swiftでどこ向けに何を書くんだい? Swiftを公教育で取り入れづらい理由の一つが、Windowsで動かす上での障壁だったっぽいからな
これで一歩前進か
それにしても、Yahooニュースのコメント欄は、iOSのアプリ開発がWindowsでできるようになったと勘違いしてるやつだらけで驚くな っていうかMac無しでも
iPhone用アプリとか
Mac用アプリとか
開発出来る様にしてくれ Windows無しでOfficeの全機能使えないのとまあ、似た様なものだし Swift自体はもしかしたら良い言語なのかもしれないけどXcodeとautolayoutがストレスすぎてiOS開発が苦行すぎる さすがに11年前のmacbookproじゃ遅すぎる Windowsでやるメリットがイマイチ見えないけどな。
まあ、Windowsメインな環境では、ってところか。 勿論、言語としてSwiftを使うのはどの環境でも良いんだけど。
Windowsアプリ開発用の環境が整うまではかなり時間がかかるだろうね。 いずれWindows環境でもiPhone風のアニメーション付きのGUIを手軽に作れるようになる。 Windowsにそういう文化が有れば、既存の環境でとっくにそうなってるだろうと思うけど。 「いずれ」とは言ったが、「いつ」とは言ってない。
Windows環境だと既存GUIフレームワークと差別化できる分野がアニメーションぐらいしかない。 >>692
関係あるよ。SwiftUIはコンパイラレベルで対応するのだからすでに言語の一部。 SwiftUIのForEachに相当する文法は他言語のGUIライブラリに存在しない。
従来リソースファイルで定義されてきたGUIをソースファイルドに統合したことの意味は大きい。 流石にWindowsでの普及を目指すわけじゃないでしょう
Chromebook + Pythonばっかになった教育市場を、iPad + Swiftで再びAppleのものに戻したいんじゃないのかな
その導入の前提として、SwiftがApple製品とUbuntuなどに限られている点が問題にされていたから、Windows版を出すに至ったんだろう SwiftUIはiOS14で少しマシになったけど、まだまだ機能が足りない感じ。
静的解析に検出可能なお約束的ランタイムエラーをコンパイル時に警告してくれたら助かるかな。 訂正。
静的解析に検出可能なお約束的ランタイムエラーをコンパイル時に警告してくれたら助かる。
今のSwiftUIはアンドキュメンテッドな地雷を避ける自助努力が必要な不完全な代物だよ。。
アンドキュメンテッドだから踏まないと分からないけど。 突然だけど、iosアプリの中でスクレイピングしたデータを表示させたいんだけど、octoparseというツールは使えますか?あれで完成してるから、アプリの中で利用するというのは無理ですか? swiftからシステムapiコールするのさえムリポ言語だろ >>703
そもそも、そのツールを使う必要性はあるの? >>703
やりたいことがうまくイメージできないけどKanna使えばできると思うよ Sunは倒産するべきではなかった
めちゃくちゃにしやがって JavaScriptやっててswiftもやろうと思っとるんやけど…
クラス、オブジェクトの概念等々大体の考え方は似てると考えてええの?? オブジェクト指向の概念自体は基本的に共通だが、用語や仕様は違う ここ見るとSwiftは仕様変更に伴うリスク結構あるんだな
枯れたObjective-Cの方が安全で楽な気がしてきた OSXの時でさえ「墓から掘り出してきた」とか言われてたもんな C++ みたいな糞禿より
Objective-C の方が正統派だったのに C++なんかよりObj-Cの方が全体の筋はいいわな。
ああいう切り分けのスッキリした新モダン言語を期待したら
swiftはやっぱりごちゃごちゃしたとこから“こう整理しました”で来てる感じで
結局、旧来の言語並の学習コストが…
いっそFORTRAN→BASICぐらい割り切って欲しかった。 objcは視認性がなぁ
同じ記号何回打つのも疲れるし 視認性とか判読性とか入力しやすさはこの際仕方ない
メンテのしやすさはどうよ? Objective-C に似てるのは Ruby や Smalltalk
で Ruby や Smalltalk のメンテのし易さ(し難さ)を考えると Objective-Cを改良してSmalltalk/Xみたいな方向(Cのルーチンを気軽かけるSmalltalk)に寄ってくれればよかった。 アプリを新規開発しようと思うのですがSwiftUIで作るのが正道ですか?
時期尚早でしょうか? 以下の条件を満たすなら検討の価値有り。
・iOS13以前の客は要らない
・Apple製品を横断する展開を考えている ライブラリはUIKitだらけだからその辺も判断に
SwiftUIはまだまだこれから 12以前って今でもサポートされてるの?
公式にサポートされているバージョンとかどこで確認できる? 12以前という表現は12を含む。よってサポートされているのでご安心を。 それは常識以前の問題だ。
(常識は含むでしょうか) 「人間以下」という表現は侮蔑に当たらない。
侮蔑したいならば「人間未満」とすべきである。 >>729
誤り。
「人間以下」は人間より劣っている事を表す。 勉強しながら自分用のマップアプリを作ってみているのですが、mapkitを使って表示したマップにテキスト入力をさせるみたいなことは出来ないのでしょうか?
やりたいのは特定の場所を長押ししてピン留め、そしてそれに写真を貼り付けたりメモを入力したりです。
ググったりしても特に見当たらないのでご存じの方がいましたらご教示下さいませ。 https://www.hackingwithswift.com/100
Days 60-65: Maps and bugsは参考になるかと思います。 >>733
ありがとうございます!
早速覗いてみます。 >>710
そもそもクラス概念無いやろ
バリアントjs使いの陥る落とし穴 Xcode11から時々info.plistのvalueフィールドが大きさ固定で拡大しないバグまだ治らんの
Air M1でも同じって・・ 「swiftによるアプリケーション開発:入門編」をポチポチ始めたが
Xcode立ち上げたままプレイグラウンド使い続けてたら
ある日OSごと落ちてた >>735
おいおいJavaScriptはSwiftなんか遥かに超えてるぞw
Promise/async/await のない言語なんかうんこ 「地獄のアプリ開発」を経験した元Uberのエンジニアがその真実を語る
https://gigazine.net/news/20201213-uber-app-develop-hell
「Uberアプリのサイズは331MBです」というBrichter氏のツイートに対し、Stanley氏は「Uberのアプリがそんなに大きい理由はSwiftです。Objective-C版のアプリのサイズはSwift版の3分の1でした」とリプライ。
(中略)
iOSアプリの開発言語としてSwiftが選択肢にありましたが、Swiftは数々の問題を抱えていたため利用が禁止されていたとのこと。しかし、アーキテクチャチームはSwiftの問題はほとんどがObjective-Cとの相互運用にあり、純粋なSwiftアプリを開発すれば問題ないと判断。また、AndroidアプリとiOSアプリのアーキテクチャを統一したいという思惑から、最終的にSwiftを開発言語に採用することが決まったとのこと。
(中略)
当時のSwiftコンパイラが非常に低速で使い物にならず、アプリのビルドにかかる時間が長くなってしまった結果、デバッグなどがまったく機能しなくなってしまったとのこと。また、当時のSwiftはライブラリを動的にしかリンクすることができなかったため、アプリの起動に最大で12秒もかかるようになってしまったとStanley氏は語っています。
(中略)
こうした外部要因だけでなく、内部的にも「Swift派」と「Objective-C派」に派閥の分裂が生じていたとのこと。Swift派はSwiftに執着して問題を否定し、Objective-C派は解決策を提示せず不平のみ発するようになり、社内は緊張状態になっていたとStanley氏は語っています。 スレ盾が2年前は流石に古すぎる
swiftは停滞してるんじゃないのか
ゆゆしき問題だ swiftだとなんででかくなるんだ
関連ライブラリのサイズか? これから始めるのでSwiftUI覚えようかと思うのですがSwiftUIって普及してるんですか? 半年ほど前からswiftUIの勉強してるけどUIKitしか書いてない 未来へのワクワク感を味わいたいならSwiftUI一択。 >>755
そのワクワク感、こんのまりのいう「ときめき」ってすっごく大事だと思うのですが、最近ときめくものがなくなってしまった、どうしよう…… デフォルトのUIでさっさと作っていい向上向けだとSwiftUIでもいけそうに思えるけどどうでしょう? Swiftは大型アプリには向かないと
10画面程度のアプリなら良いですかね flutter >>>>>swift ui もう無理 業務アプリとかWebアプリで作ったほうがよくね
わざわざネイティブにするメリットある? たとえばマイクロソフトのiOSアプリでは…
Bing Search
Microsoft OneDrive
Microsoft Outlook
Xbox
Microsoft Word
Microsoft OneNote
Microsoft Excel
Mixer - Interactive Streaming
Microsoft SharePoint
Microsoft Teams
Cortana
Microsoft Edge
Office Delve - for Office 365
Microsoft Visio Viewer
Dynamics 365 for phones
PowerApps
MS Executive Industry Summit
…が、ReactNativeを使うてますね。
https://appfigures.com/resources/insights/microsoft-goes-all-in-on-react-native SwiftUIで下記のようにListをSidebarListStyleで作ったのですが、
初期状態で閉じた状態にするのはどうしたら良いでしょうか?
情報が全然見当たらずどうしたら良いものかと。。。
List {
Section(header: Text("やさい")){
Text("大根")
Text("キャベツ")
}
Section(header: Text("くだもの")) {
Text("りんご")
Text("オレンジ")
}
}
.listStyle(SidebarListStyle()) 不安になるようなら、今はやめとけばいい。
SwiftUIそのものは難易度低いから、SwiftUIが必要になってから調べても十分間に合うよ。
SwiftUIは情報が少ないというのが難ではあるけど。 SwiftUIは商用GUIフレームワークの中で最も生産性が高いよ。
同じことを実現するために必要なコード量を比較すれば一目瞭然。 Visual Basicで同じことをやろうとしたら、言語仕様や.NET Frameworkの仕様の制約を受けるのでSwftUIほど小さなコードにはならない。 生産性って普通、工数=時間が尺度だろ。
極端な話、例えばボタンDDして作れば一秒もかからん。 クロスプラットフォームの覇権を握るのはswiftかxamarinかflutterか Swiftって単独でクロスプラットフォーム対応と言えるか?
なんらかのサードパーティー頼れば話は別だけど この流れでのswiftはswiftuiでしょめんどくさい それは用語意識としてあり得ない。
だとしたら非常識。 「Objective-C」を追い越す--アップル製品での採用が拡大する「Swift」の勘所 - CNET Japan
https://japan.cnet.com/article/35164510/
> SwiftはObjective-Cよりも2.6倍以上高速で、「Python」よりも8.4倍以上速い。 倉庫の在庫確認用にiPhoneアプリを作ってるのですが開発者ライセンスを買えば一週間縛り無しでiPhone上に長期間アプリを置けますか?
利用者が少数過ぎてストア申請も出来ないしどうしたもんだろと思ってます Swift Performanceがココに!
https://forums.swift.org/t/swift-performance/28776
対C言語で12倍遅い。
ちなみに、JavaScriptは、6.8倍遅い。
SwiftはJavaScriptに負けてる。
Ruby, Python, PHPよりもちょいとだけ速いのがSwift。
残念ながら、Objective-CのScoreが無い。 バカかな?JSはスクリプト言語だぞ?
まがりなりにもコンパイル言語がスクリプト言語より遅いわけがないだろwww >>796
2回目の実行はコンパイルされてる。
vscodeでflutter/dart開発してると、XcodeでSwift開発が鬼のように辛い、遅い、エラーじゃないのにエラー出続けて周辺行にコピペするとエラー消えたり、挙動も変 >>795
obj-cなら8倍くらい速いんじゃない? >エラーじゃないのにエラー出続けて
xcode再起動で消えたりな >>797
あるある。
Appleに要望したいのは、Xcodeの安定性。 VisualStudioで開発すればいいじゃない? 今のXcordはクソだからなぁ
ゲイの在庫管理屋がトップにいる限り治らんよ Apple Developer Enterprise Programなんてのがあるんですね
それなりの企業なら閉じた環境でアプリ使えるんですね
小さい企業はお終いですけど しょっちゅういろんなペインのリサイズ出来なくなるし
ファイル名見えねーよ >>805
注意点
・ストア公開できない
・子会社とかに配信できない(常駐のSESとかグレーw 調べたらApple Developer Enterprise Programでインハウス開発は審査厳しくてもう無理レベルなんだってね
iOSってそもそもインハウス開発やらせる気が無いと悟って絶望した 今始めるならSwiftUIとFlutterどっちがおすすめ? SwiftUI弄って一時間で、こりゃダメだと実感
仕様がどうこうじゃなくで、Xcodeが使い物にならん M1 MacでXcode使ってる人いる?
サクサク動くんだろうか?
MBP16(2019) i9 8coreで動かしてるけど、もうちょっとサクサク感が欲しい。
i9ならコンパイルは速いと思うが、動作の機敏さが欲しい。 >>813
Air M1 松吊るし≒MacBook Pro16松吊るし
Xcodeの問題も多いしSwiftの要らない言語仕様も多いし 吊るし8ram 512ssd mini m1正月に買ったけど、16ram mbpより速いね。
それにしても、hdr動画観るときにいちいちdspチェックonoffしなきゃならんのがなー。
おっと。tv4k で観ればええねwww Appleカーなんぞに金をかけないでXcodeやSwiftUIをなんとかして欲しいんだがなぁ Xcode+keychainとか未だに10年くらい嫌がらせのようなバグあるよね、直す気ないんだよなハゲ iPhoneアプリは儲かるからどれだけバグがあろうと開発者が減らない
だから開発環境の品質があがらない 去年末から配布を前提としない超個人的なアプリを勉強がてらに作ったのですが使える期間が1週間は悲しい
永年利用可能にしてくれれば良いのに
開発者ライセンスで毎年1万円払えば使えるのかも知れんですけど SwiftUIから勉強してるけど基本は構造体なのかな
まあプロパティ作れるからクラスと同じなのかも知れないけど それはSwiftの仕様。SwiftUIに限らない。 swiftUIって名前がややこしい
素人はswiftの新バージョンの別言語と思うぞ >>822
これほんと思う
検索しても検索エンジンがSwiftUIとSwiftそのものを区別出来なくて目的の情報にリーチ出来ない swiftuiは、今までの独自的なストーリーから引っ張ってこなくてもできるのが進化じゃね? SwiftUIが公開済みアプリに採用された例はあるのかな
iOS13以降のシェアは9割超えみたいだし条件は整ってるように思われるけど >>826
WidgetKitはSwiftUI必須だから
WidgetをiOS14に対応させてれば必ずつかってるだろ swiftってライブラリばかり使ってて他の言語みたいな数式ゴリゴリのコード書いてないんだけど
ライブラリ使わずにどうやってコード書くもんなの?
ライブラリ以外でCGFloatとかどう触ればいいのか断念した覚えがあるけど再挑戦したい
調べてもライブラリの使い方ばかり出てくる enum をextension onで文字列にするのやめてくれよ
整数なら8byteで足りるだろ >>831
何がしたいのか意味不明
数式ゴリゴリのコードとは? fか;ljfかl;jふぁml;sjfkぁsmjkl;jmc;ぁ SwiftUIのリンクの色のカラーって何でしょう
Color.blueだとなんか紫に近くて 自己解決しました
systemBlueでシステムと同じ色が出ました swiftは初心者向けスレが無いね
やりたい人が少ないのかな 初心者向けに各種ライブラリが用意されてるんですけど 初心者ですが、アプリの設定情報をレルムで管理するのは良くないでしょうか? なるべくUserDefaults使うのが吉
UserDefaultsで保存できないならアリ ご助言ありがとうございます
アプリの設定を保存するのにデータベースは仰々しいかなと思っていたので
参考にさせて頂きます つうか、ローカルでやるかどうかなんて純粋に目的によるだろ。 SwiftUI勉強初めて2週間目
2つのViewの間で永続化データを共有したく、次のようなコードを書きました
動きはしたんですがViewごとに同じ宣言をするのは世間様的に正しいでしょうか?
struct ContentView: View {
@AppStorage("countKey") var Test:String = ""
var body: some View {Text("Hoge")}}
struct ContentView: View {
@AppStorage("countKey") var Test:String = ""
var body: some View {Text("fuge")}} 同じView名を書いていました。失礼しました。
まあ"countKey"が重要なので世間様的にも問題ないのかなと思い初めてます
struct ContentView: View {
@AppStorage("countKey") var Test:String = ""
var body: some View {Text("Hoge")}}
struct SwiftUIView: View {
@AppStorage("countKey") var Test:String = ""
var body: some View {Text("fuge")}} SwiftUIノータッチでよく分からない
安定するまでもうちょ時間かかると思うので 人柱になれやあああああああ
それでもマカーかよっ!! SwiftUIの危なっかしさを楽しめない人はPG人生を損してる。 SwiftUIから勉強してるのですが本当に根付くのか心配になる情報ばかりで怖いです swiftUIで
Rectangle()をn個並べて表示したいとき
どこをforで囲えばいいのかわからない >>852
SwiftUIを廃止してStoryBoardに戻ることはないだろう SwiftUIで永続化データ扱う場合はAppStorageを使うとあったので、
外人の作ったコードを丸パクリして下記のように配列を入れてみましたが
@AppStorage("itemsInt") var itemsInt = [1, 2, 3]
「No exact matches in call to initializer 」と怒られてしまいます。
何がいけないのでしょうか?googleで情報が2件くらいしか見つからないので
まさか人類で100人もやってないことをしようとしているのかと不安な思いです。 >>852
安心して。OSメーカーが自ら推進して失敗したguiフレームワークなんてU...ないから >>858
うっそーん。
Rubyなんちゃらとか今は無し。
短命に終わったGUI Frameworkはあるッショ? AppStorageには大きなデータを置くべきじゃないみたいなので、配列を入れるような利用は想定されてないのですね
大人しくrealm使います UserDefaultに配列保持するやり方はサンプルが沢山あったので理解できました
AppStorageはUserDefaultのラッパーみたいなのできっと同じ事できるんだろうなと思いつつ外国にもサンプル無いって無理ゲーだなと感じています
初学者には敷居高いですねswiftUI SwiftUIは解説が少ない上
あっても内容が古かったり使いもんにならない
初心者はしばらくはUIKitじゃないと厳しいと思われる
ライブラリも考慮すると尚更 今から宣言型UIを組み込むとかキチガイ
flutterで100倍楽できる 結論から言うとswiftUIは遊び以上には使えないと SwiftスレでFlutterのが優秀という話が出るとは おれのSwiftも狙われたらどうしよう・・・!!
ハンドルロックを取り付けていても、レクサスが盗まれてしまいました。
防犯カメラには、何らかの道具でハンドルロックを切断して車を盗む犯行の一部始終が映っていました。
愛知県西尾市で先月27日に撮影された防犯カメラの映像。
画面奥の白い車から降りてきた1人の男が、駐車場に止まっていたレクサスLXに近づいていきます。
男が車の鍵を開け車に乗り込むと、中で火花が散るのがわかります。
車には盗難防止用にハンドルを固定するハンドルロックが取り付けてあったにもかかわらず、男は車を運転し去っていきました。
ハンドルロックは一部が切断された状態で見つかりました。
防犯カメラに映っていた火花は、何らかの道具でハンドルロックを切断する際に出たとみられます。
被害者「残念で仕方がない。車は相棒みたいなもので、一番好きなものなので。残念。」
愛知県内では、レクサスLXを狙った窃盗事件が相次いでいて、去年は119台が盗まれ車種別では最も多くなっています。
警察は被害届を受理し窃盗事件として調べています。
https://news.yahoo.co.jp/articles/8583e237417aa65e811b002e74aee5ee0eda42dd
https://youtu.be/DBwCjbLbq6c SwiftUIスレ作れば?
盛り上がりが分かる。寒そうだけど・・ swiftUIでtext内にハイパーリンク作る方法って無いんですか?
UIViewRepresentableを使う方法は上手くいきませんでした。詰んでます。 flutterでもプラグイン使わないとできないから無理じゃね? SwiftUIは日本じゃ200人くらいしかやってない印象 さすがにもっと多いでしょ。少なくとも1万人いるんじゃないの。 まわりにいるiOS開発者で
遊び以外の業務使用者ゼロだが 200人っていうのは業務でやってる人が200人ってこと? SwiftUIを業務で使った人は世界で10人居ない可能性ある javaや.Netに比べるとSwift人口少ないよね flutterとかに完全に負けてるからなぁ
Xcodeも使いにくいし 確かにxcodeは使いにくい。仕方なく使ってる。
慣れるのが立派なんだと思い込んでいる信者が多いコミュニティは進歩がとまる。 Appleって会社は1000%儲からないと何も変えない、頭がおかしい会社になってしまったからな。。未だにLightningとか。。
そこがジョブズと180度違うところ。。 コピペや検索関連のショートカットがユーザーの左手周辺に固まっているのは、ユーザーの右手がマウスでふさがっていることを想定してのこと。
なのに検索開始ボタンがないのでマウスで検索開始できず、左手の固定位置から遠く離れたEnterキーを左手または右手で押しにいく手間が発生する。 タイプしてる間は手はホームポジションにあるけどね。 Xcodeが不便なおかげでKarabiner-ElementsでCaps lockキーにEnterを割り当てるきっかけを持てた。毒親に感謝。 海外勢の中にはVSCodeでiOS+Swiftの開発できるようにしてる人もいるようで、そっちを標準の開発環境にして欲しいな
XCodeは単なるエディタとして使う時間が大半を占めているのに、作業に不釣り合いなほど重い マイクロソフト謹製プログラムはタブオーダーの概念があって、ポインティングデバイスがなくても可能な限りキーボードだけで操作できるよう設計されている。
アップル謹製プログラムにはない。
同じプログラム上のUIなのに、キーボードだけを使うことを強要されたり、逆にマウスだけを使うことと強要されたりするちぐはぐさはアップル謹製プログラムが抜きんでている。 プログラム制作者に強要する自由を与えているのでは? アップルIDを取得するメソッドとか無いですかね
なんか禁止されてる感があるんですけど
インハウス開発でのアクセス制限で使えないかなと >>893
アップル様のやることに疑問を持ったら立派なキチ…アップル信者になれないぞ。>>894を見習え まあ、キーボードショートカットやキーバインディングを知らないだけだったりもあるけどね。 「Appleは宗教、なぜならばマイノリティだから。
Windowsは違う、なぜなら俺が属しているから。」
GAFA相手にドザカルトのこの妄想。
もうものすごすぎて誰も相手にされてない自覚あんのかね… アップルなのかマックなのかウィンドウズなのかマイクロソフトなのか揃えてからにしよ? そもそも「Windows」に対応するのは「macOS」 とはいえ、MacはハードとOSが一体のシステムとしての方向性をますます高めているから、
「Windows PC」と「Mac」
いうのが対応関係としては妥当か。 Swift勉強中で下記のような配列の使い方を知ったのですが、
配列に次のオブジェクトを追加する時、idはどうやって求めますか?
一つづつ読み込んで最大のidをインクリメントすれば良いかなと思いつつ
力技過ぎてる気もしており、世間様のやり方をお聞きしたいです。
let ユーザーズ: [ユーザー] = [
ユーザー(id: 0, nameno: "0000001"),
ユーザー(id: 1, nameno: "0000012"),
ユーザー(id: 2, nameno: "0000123"),
] 自己解決しました。
UUID()を使えば良いことが解りました。 窓アプリのipadアプリ化請たんだが、初xcodeなんでかなりストレス。
多タブなんかマジ死にたくなるわ。
それにしても関数の引数表記とか、引数値変更にinout付けろとか、ぶん投げたくなる。
けど、案件が1000万納期4ヶ月だからまだいい方か?
下請けに回せられるなら回したいけど契約が邪魔してクソ!
それにしてもswiftはエクステ使えたり、構造体の初期化もかなり楽なのは使える言語と思った。
後はセル処理つう難題が... dartのほうが3倍生産性高いけどなw
Swiftは完成前にコミュニティを育てなかったのが間違い
もう嫌々やるけどw >>909
下請けにまわすとmonacaでサクっと作ってくれるよ モナカみたいなバックエンドありきは拒否られてるのが痛いんですよ。
swift+odbcでdbやり取りは何とかできたので、糞mssql外さないとってことで、db変更費もらってきました。
セルの方も何とか行けそうですが..
うまく行ったらスレ汚しします。
ありがとうございました。、 X-Codeプロジェクトの構成はどこの設計のレベルで設計してますか?
詳細設計で良いですかね? アプリの大きめのリソースをサーバーにおいて、インストール後にダウンロードさせたいのですが、自前のサーバーではなく、AppStoreに外部リソースを置くことは可能でしょうか? CloudKitでpublicなstorage使える >>858
WPF, Openlook, Cocoa-Java… , Cocoa-Binding. xcodeは日本語化のプラグインあったらもう少しだけ使いやすいはず 今時、大手で多言語対応してない開発環境なんてxcodeぐらいだよ。 そもそもバグでエラーじゃないのにビルドエラー通知されるのに・・ HUAWEIに引き抜かれちゃったから優秀な人が皆無 iOSおススメのデータベースって今ならRealmですかね?
使うならSQLiteのが堅実かなと悩んでます。 あわしろ氏はiOSはオワコンと言ってたな。
Linuxに乗り換えたほうが良い。 仕事を受ける側になりたいなら SQLite > Core Data > Realm じゃないかな
仕事を出す側、もしくは個人で作るだけならどれでもいい
自分は適当に検索して、学習コストの低さと大容量データの処理速度でRealmを選んだ
こういうのは何か一つマスターすればその他はそれほど苦労せずに済むものだから最初は適当でいいんじゃないかな どんなコンピュータ言語もオワコンになることはない。そうSwiftでもね。 swiftそのものがApple環境のみの変態言語になってしまったからなぁ C#でiOSアプリ作れるけどネイティブより情報少ないから詰んだら終わりそうで怖い >>933
xamrinならAppleより公式サイトが親切w
でもi/A共通宣言的UIフレームワークなわけじゃないから開発効率悪い C#からSwift来たけどSocket.IO1つ入れるのに苦労するね swiftになっても中身obC時代と何も変わってないから。
Appleって天から仕様が降ってくるだけでコミュニティが無いし。 NSObjectとか命名からして
NextStepから本質変わってない。
ProjectBuilder
InterfaceBuilder
EOModeler
懐かしい Realmって商用無料なんですかね?
あんまり情報無いんで何なのだろうと Apache 2.0 licenseというのは調べたのですが、デベロッパとエンタープライズがあるとも見たので、商用に使う場合は有料のエンタープライズなのかな?と迷ったのです。 >>912
面白い事言うねぇ。
Null安全ブームってのが有ったんだ。そういえば、有ったような気がする。 プログラムビギナーの者です。
下記のプログラムを実行すると、ほぼうまく行くのですが、並列処理の時だと「func かけ算処理」のところで
10回に1回ペースで「EXC_BAD_ACCESS code=1」のエラーがでます。
どうしてエラーになるのかわからずお手上げ状態です。
どこに問題があるのかご教授お願いできないでしょうか。
ちなみに直列処理にはとりあえず、エラーはでてません。
よろしくお願いします。
環境
Macbook Air 2017 8GB
macOS Big Sur 11.2.2
Xcode 12.4
↓ソース
import Foundation
private let 最小段: Int = 1
private let 最大段: Int = 9
private var かけ算段の値: Dictionary<Int, Int> = [:]
private var かけ算値: Int! func かけ算() {
let 開始 = Date()
let dispatch_group = DispatchGroup()
//並列処理用
let dispatch_queue = DispatchQueue(label: "かけ算", attributes: .concurrent)
//直列処理用 都度処理と同じ?
//let dispatch_queue = DispatchQueue(label: "queue")
for 段 in 最小段...最大段 {
かけ算段の値[段] = 0
dispatch_group.enter()
dispatch_queue.async(group: dispatch_group) {
かけ算スレッド(段: 段) {
(段: Int) -> Void in
print("#\(段)の段 終了 \(段) × 9 = \(かけ算段の値[段]!) です")
dispatch_group.leave()
}
}
} dispatch_group.notify(queue: .main) {
let 終了 = Date().timeIntervalSince(開始)
print("処理時間 \(終了)秒")
}
}
//スレッド処理
private func かけ算スレッド(段: Int, かけ算スレッド終了: (_ 段: Int) -> Void) {
print("#\(段)の段 開始")
let かけ算値: Int = かけ算処理(段: 段)
かけ算段の値.updateValue(かけ算値, forKey: 段)
かけ算スレッド終了(段)
} //かけ算実処理
@discardableResult
private func かけ算処理(段: Int) -> Int {
for 数 in 1...9 {
print(段, 数, 段 * 数, かけ算段の値[段]!)
かけ算値 = 段 * 数
//かけ算段の値.updateValue((段 * 数), forKey: 段)
}
return(かけ算値)
//return(かけ算段の値[段]!)
} >>949
https://qiita.com/omochimetaru/items/953bea70bb1667de4c49
ここら辺を読んでみるといいかな
var かけ算段の値を変数からクラス化するとか、
func かけ算処理もクラス化して関数コールするとかかな
それか、asyncのフラグにbarrier付けてやれば、並列じゃなくなるけどエラー回避は出来るかな
てか、小学生レベルの掛け算程度のロジックならスレッド処理しなくても困らないと思うけどねw 掛け算段の値を複数スレッドから同時にアクセスしてるからじゃないの?
objc_sync_enter/exitでかこってみたら?
あと日本語コード読みにくい… 俺環ではシェルのループでぐるぐる回してもエラー出ないな
CLIで実行するにはdispatchMain()と対応するexit()が必要だったくらい このクソiOS14あたりから文字入力中のコンテキストメニューが中々出ね〜、クソSwiftUIのせいだろ >>955-957
ご教授ありがとうございます。
かけ算処理の関数をclassに変更して試してみると今の時点でもエラーにならず実行できました。
本当にありがとうございました。 >>959
いえいえ
調べてたり試したりしてわかったことは
Qiitaにまとめておいてくださいね。
同じように悩んでいる人が助かります。 今更AppKitなんですが、NSOutlineViewのindentationMarker(disclosure triangle)の幅を描画前に取得する方法はないでしょうか?
View basedでColumnは1つだけのNSOutlineViewを作っていて、func outlineView(_: heightOfRowByItem:) で返す高さを計算するために
row1つ分のView(NSTableCellView)の幅を知りたいのです。
Column幅 - (indentationPerLevel * level(forItem: item)) でいけるかなと思いきやこれだとdisclosure triangle分が余計です。 WindowsクライアントとiPhone間でSocketIOでメッセージ送り合うプログラム書いてるけど3日頑張っても動く気がしない
エラーも応答タイムアウトしか出てこないからどこから調べたものか
ATSもファイアーウォールも解除してるんですけど何とも
市販のアプリはよく簡単にクラウドとやり取りできるなと感心しちゃう Ruby なら、コマンドプロンプト・PowerShell から、1-liner で、
Rubyで作られた遅いウェブサーバー、WEBrick が起動する
ruby -run -e httpd . -p 8080
そのフォルダに、index.html があれば、これでブラウザからアクセスできる
http://localhost:8080 >>964
Wiresharkでパケットキャプチャしてみたら? あわしろ氏は、Swiftはオワコンと言ってたけどな。 >>965
オマエ、ソケットの意味すら理解できん池沼やろwww オワコン状態からFlutterで華麗に復活したDart
華々しくデビューしたものの相次ぐ仕様変更のあげくSwift UIでトドメを刺されたSwift
どこで差がついた swiftUIは使われずに消える定めかな
新規開発すらUIKit主流な気がする 無料アカウントの10アプリ1週間制限止めてくれないかな
アップルストアでマージン取るんだから良いでしょ 始点から終点までの移動した角度をx,y,z(オイラー角)で取得するにはどうすればいいですか?
最初からオイラー角を使うとジンバルロックで変な値しか取得できませんでした。
クォータニオンを使うといいと思うのですが、差分を算出する方法が分からない状態です・・。
分かる方がいましたら、よろしくお願いします。 >>977
そういう問はアルゴリズム板のが良いでしょ 角度は平面に存在するものだから(x,y,z)で表すにはどうしたらいいか?なんて言われても答えようがない >>978
ありがとうございます。そんな板があったんですね・・
はたして自分の頭で回答が理解できるか分かりませんが、向こうで聞いてみたいと思います。 回答者が質問を理解できるかがポイントかな
頑張って BLEのIntervalが過去の記事(URLがNGで貼れませんでした)だと「20ms」となっていますが、最新のガイドラインだと「15ms」になっています。
どのバージョンから15msへ変更になったか、わかりますでしょうか?
もしくは過去のガイドラインを見ることは出来ますでしょうか?
https://developer.apple.com/accessories/Accessory-Design-Guidelines.pdf for var i in 0..<n
で配列扱う場合、iを任意に指定できないの? 同じく頑張って無理矢理理解しようとしたが
さっぱり意味分からんかった iの取る値として、0からn-1の連続した整数じゃなくて飛び飛びの値にしたいとゲスパー わたしjはコレからSwiftを勉強してMacとiPadに
製作系アプリケーションを作る予定 ホームボタン押されたらアプリを初期状態にしたいのですが、
exit関数を使うとアプリの登録が拒否されると聞きました。
ホームボタンでアプリを初期状態にしたい時、世間様ではどうやっているのですか? viewWillDisappearあたり使えばいいのでは つうか、ボタンなどのハードウェアをAppleが定めている以外の使い方したら審査通らない。 小学生の頃、stopボタンをprint screenに変えたら親父に怒られたの思い出した ホームボタンは初期状態に戻すためではなく、ホームに戻るためびボタンだよ。
もっとも、押されたことを認識してアプリ内部で自分で初期状態になればいいんじゃないか?
金融関係のアプリだと、初期状態にはならないけど画面にボカシをかけたりするね。 >>991
こういう質問投げっぱなしで消えるやつマジむかつくわ このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 895日 17時間 36分 25秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。