探検
Swift part13
1デフォルトの名無しさん (ワッチョイ 0f2d-WqpA)
2021/04/12(月) 16:04:28.17ID:UoC5n/T70Swiftについて語りましょう
※前スレ
https://mevius.5ch.net/test/read.cgi/tech/1540818496/
スレ立て時は1行目に「!extend::vvvvv」
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2デフォルトの名無しさん (ワッチョイ f72d-WqpA)
2021/04/12(月) 16:06:59.23ID:UoC5n/T70 !extendを初めて使ったがこれで有効になってるのか?
3デフォルトの名無しさん (ワッチョイ 2310-8YTl)
2021/04/12(月) 22:22:02.79ID:UKQVuTyP0 1乙
4デフォルトの名無しさん (ワッチョイ d701-H6g2)
2021/04/14(水) 20:56:32.07ID:NT2YeJTU0 xcodeのviewcontrollerswiftの行番号横に出てくる青い線ってなんか支障ある?
そのままでもいい?
そのままでもいい?
5デフォルトの名無しさん (ワッチョイ 2310-8YTl)
2021/04/14(水) 23:43:33.08ID:ghw/se4N0 青くしてるとそこで止まるで
6デフォルトの名無しさん (ワッチョイ f72d-mU/W)
2021/04/14(水) 23:49:10.52ID:yHDG+5KY0 Xcode12からはdebug previewでは止まらなくなったで
7デフォルトの名無しさん (ワッチョイ d701-H6g2)
2021/04/15(木) 06:31:06.36ID:51qF/QZH0 邪魔だし消そうと思ったけど、今のバージョンだと消し方よく分からんな
https://teratail.com/questions/154127
https://teratail.com/questions/154127
8デフォルトの名無しさん (ワッチョイ 2310-8YTl)
2021/04/15(木) 09:19:03.81ID:mXFDlpUu09デフォルトの名無しさん (アウアウクー MM9f-H6g2)
2021/04/15(木) 18:44:06.06ID:ZdlMN/dRM10デフォルトの名無しさん (ワッチョイ ffbb-Htjb)
2021/04/16(金) 08:34:30.34ID:2WM9IZ5w011デフォルトの名無しさん (ワッチョイ 6be9-cp4x)
2021/05/14(金) 08:31:13.57ID:Crdh4yJI0 Swift開発においては、UIKitとSwiftUIを知らないといけないとか、敷居が高くなってきたなぁ
12デフォルトの名無しさん (ワッチョイ 6be9-cp4x)
2021/05/14(金) 09:12:56.59ID:Crdh4yJI0 勉強がてらに無料ライセンスで自分向けアプリを作ってるのですが、すぐに「もう利用できません」と出てきます
有料ライセンスにすれば、恒久的に利用できるでしょうか?
ライセンス規約には色々書いてありますが「ずっと使えます」という言及が見当たらずどうしたもんかと
有料ライセンスにすれば、恒久的に利用できるでしょうか?
ライセンス規約には色々書いてありますが「ずっと使えます」という言及が見当たらずどうしたもんかと
13デフォルトの名無しさん (ワッチョイ 2910-dF1z)
2021/05/14(金) 09:24:31.46ID:WB/gV9Wu014デフォルトの名無しさん (ワッチョイ 6be9-cp4x)
2021/05/17(月) 10:25:36.01ID:zD/aLPFV0 >今から新規で始めるのは不可能レベルだよな
下手すりゃObjectCまで知ってないといけないから実務でやるの怖い
下手すりゃObjectCまで知ってないといけないから実務でやるの怖い
15デフォルトの名無しさん (ワッチョイ 6be9-Bqla)
2021/05/17(月) 14:50:59.35ID:zD/aLPFV0 Javaやphpに比べるとプレイヤーが圧倒的に少ないなswift
16デフォルトの名無しさん (ワッチョイ 6d2d-pswo)
2021/05/17(月) 15:49:21.45ID:v1HmDqI00 過当競争に飛び込んでいく勇気ないわ
17デフォルトの名無しさん (スップ Sddb-Hf/L)
2021/05/19(水) 01:11:15.03ID:nXtdymM/d かと言って、ドロイド開発しても売れねーしなwww
18デフォルトの名無しさん (ワッチョイ 2bbb-C4va)
2021/05/29(土) 09:25:17.82ID:W6PXZQdJ0 ここで質問する内容かわからないけど、realms やfirebaseみたいにpostgresqlのデータをリアルタイムで同期してくれるツール見たいのないかね。
見つかってももう更新してなかったりで。
見つかってももう更新してなかったりで。
19デフォルトの名無しさん (アウアウクー MM0d-vWf6)
2021/06/03(木) 13:56:46.59ID:LDTrzaXbM @objc func headertapped(sender: UITapGestureRecognizer) {
guard let section = sender.view?.tag else {
return
}
courseArray[section].isShown.toggle()
tableView.beginUpdates()←
tableView.reloadSections([section], with: .automatic)←
tableView.endUpdates()←
}
矢印の部分で型決定の情報がないってエラーメッセージでるんだが原因わかる?
guard let section = sender.view?.tag else {
return
}
courseArray[section].isShown.toggle()
tableView.beginUpdates()←
tableView.reloadSections([section], with: .automatic)←
tableView.endUpdates()←
}
矢印の部分で型決定の情報がないってエラーメッセージでるんだが原因わかる?
20デフォルトの名無しさん (ワッチョイ 4910-+Bic)
2021/06/03(木) 22:48:03.46ID:V7bhAYBC0 コード古すぎだろ
21デフォルトの名無しさん (ワッチョイ 01da-w12y)
2021/06/03(木) 22:58:06.31ID:rCRECRUU0 コードの修正とストア申請まで代行してくれる業者教えて
22デフォルトの名無しさん (ワッチョイ d9a7-9V+W)
2021/06/04(金) 11:52:41.92ID:U0h/RJ5l0 もはや受託開発会社探しだな
23デフォルトの名無しさん (ワッチョイ 4dbd-F7mE)
2021/06/04(金) 20:45:19.35ID:P37d5u/90 >>19
tableViewってどこで宣言してんの?
tableViewってどこで宣言してんの?
24デフォルトの名無しさん (ワッチョイ caec-CsQ+)
2021/06/05(土) 00:08:29.69ID:yy2ZUubO0 うーん、スキルがある人を募集しようとしたら、1日いくらくらいかかるのかな??
25デフォルトの名無しさん (ワッチョイ 0a01-UPQK)
2021/06/05(土) 00:28:57.67ID:f5S9H8yw0 8万円
26デフォルトの名無しさん (ワッチョイ d9a7-9V+W)
2021/06/08(火) 15:14:29.75ID:MCIJcY/10 それは原価ベースの値段だな
27デフォルトの名無しさん (ブーイモ MM2e-pa8K)
2021/06/08(火) 16:44:25.90ID:MquOfZeDM パーソル税も入ってないな
28デフォルトの名無しさん (ワッチョイ 0a7c-Qqtb)
2021/06/08(火) 16:52:11.57ID:SIkqpe8x0 やっとasync/awaitかよ
他の言語から何周遅れだ
他の言語から何周遅れだ
29デフォルトの名無しさん (アウアウウー Sa11-3tT5)
2021/06/08(火) 21:06:50.56ID:zJ9nrfP2a MS起源の構文を入れるのに反対する勢力がApple社内にいたんでしょ
30デフォルトの名無しさん (ワッチョイ 335f-gyPn)
2021/06/13(日) 06:48:17.60ID:2BcHX0XT0 async awaitについて教えて下さい。
DispatchQueueでのsequencial queueと比較して理解しようとしています。
async付きで値を返すClosureブロック自体は、呼び出しスレッドとは別スレッドで動く。Closureの終了後に、awaitしているスレッド側で値を受け取る、という理解で合っていますでしょうか。
この場合、Closureを動かすスレッド自体がawaitなり処理中な場合、デッドロックになるのでしょうか。
DispatchQueueでのsequencial queueと比較して理解しようとしています。
async付きで値を返すClosureブロック自体は、呼び出しスレッドとは別スレッドで動く。Closureの終了後に、awaitしているスレッド側で値を受け取る、という理解で合っていますでしょうか。
この場合、Closureを動かすスレッド自体がawaitなり処理中な場合、デッドロックになるのでしょうか。
31デフォルトの名無しさん (ワッチョイ ff01-NdOG)
2021/06/13(日) 12:15:26.34ID:kMWVg3vn0 >>30
let foo = await fn_async()
fn_asyncは呼び出し側と同じスレッドで実行されて
fn_asyncの中のawaitが来たらsuspendされてスレッドを明け渡す
resumeされた後は呼び出し側と同じスレッドで実行されるかもしれないし
違うスレッドで実行されるかもしれない
let foo = await fn_async()
fn_asyncは呼び出し側と同じスレッドで実行されて
fn_asyncの中のawaitが来たらsuspendされてスレッドを明け渡す
resumeされた後は呼び出し側と同じスレッドで実行されるかもしれないし
違うスレッドで実行されるかもしれない
32デフォルトの名無しさん (ワッチョイ 335f-gyPn)
2021/06/13(日) 15:25:28.18ID:2BcHX0XT0 ありがとうございます。
c#5.0側の資料なども読んでみました。なんかNSRunLoopでの非同期処理に近い様な。
awaitが登場するまでは同期実行し、そこからスレッドプールへ投げるという事ですかね。
もう少し読み込んでみます。
c#5.0側の資料なども読んでみました。なんかNSRunLoopでの非同期処理に近い様な。
awaitが登場するまでは同期実行し、そこからスレッドプールへ投げるという事ですかね。
もう少し読み込んでみます。
33デフォルトの名無しさん (ワッチョイ ff01-NdOG)
2021/06/13(日) 16:32:11.81ID:kMWVg3vn0 これ見るといいと思う
Swift concurrency: Behind the scenes
https://developer.apple.com/videos/play/wwdc2021/10254/
Swift concurrency: Behind the scenes
https://developer.apple.com/videos/play/wwdc2021/10254/
34デフォルトの名無しさん (ワッチョイ 2301-plNJ)
2021/06/14(月) 11:17:37.18ID:dKj7zboM0 ボタン押したらバックグラウンドでインカメラを作動して動画が保存される機能付けたいけど難しい?
35デフォルトの名無しさん (ワッチョイ 2301-YknO)
2021/06/16(水) 21:34:11.02ID:NAAsM4eN0 swift ui以前に、swiftそのものを使ってる人が居ない
36デフォルトの名無しさん (ワッチョイ a32d-Cdqd)
2021/06/17(木) 05:45:32.93ID:rV77MlmA0 SwiftUIな
スペースはいらない
スペースはいらない
37デフォルトの名無しさん (ワッチョイ 4f35-1a2e)
2021/06/28(月) 11:33:00.10ID:eks/qTPV0 struct DoubleGenerator: IteratorProtocol {
var cnt = 1
typealias Element = Int
mutating func next() -> Element? {
defer { cnt *= 2 }
return cnt <= 10 ? cnt : nil
}
}
struct Doubler: Sequence {
// typealias Element = Int?
typealias Iterator = DoubleGenerator
func makeIterator() -> Iterator {
return Iterator()
}
}
上記のコードはコンパイル出来るのですが、コメントを外すとダメです。
SequenceのAPI DocumentにはElement, Iterator requiredとあるのに何故でしょう?
var cnt = 1
typealias Element = Int
mutating func next() -> Element? {
defer { cnt *= 2 }
return cnt <= 10 ? cnt : nil
}
}
struct Doubler: Sequence {
// typealias Element = Int?
typealias Iterator = DoubleGenerator
func makeIterator() -> Iterator {
return Iterator()
}
}
上記のコードはコンパイル出来るのですが、コメントを外すとダメです。
SequenceのAPI DocumentにはElement, Iterator requiredとあるのに何故でしょう?
38デフォルトの名無しさん (ワッチョイ 4f35-1a2e)
2021/06/28(月) 11:39:10.32ID:eks/qTPV0 >>37
API Referenceには
Default implementations provided.
とあるのでconflictするのかな?
ちな、compile errorは、
error: 'Sequence' requires the types ‘Doubler.Element' (aka 'Optional<Int>')
and 'DoubleGenerator.Element' (aka 'Int') be equivalent
API Referenceには
Default implementations provided.
とあるのでconflictするのかな?
ちな、compile errorは、
error: 'Sequence' requires the types ‘Doubler.Element' (aka 'Optional<Int>')
and 'DoubleGenerator.Element' (aka 'Int') be equivalent
39デフォルトの名無しさん (ワッチョイ 4f35-1a2e)
2021/06/28(月) 12:02:29.91ID:eks/qTPV0 >>38
Default implementationの件はSequenceのmakeIterator()の事です。
Default implementationの件はSequenceのmakeIterator()の事です。
40デフォルトの名無しさん (ワッチョイ 3f01-0Hhk)
2021/06/28(月) 12:30:24.04ID:/8Q9yNC80 >>37
コメントアウトしてもOKなのは推論が効くから
SequenceのElementは↓なのでエラーメッセージにあるようにInt?じゃなくIntにする
associatedtype Element where Self.Element == Self.Iterator.Element
コメントアウトしてもOKなのは推論が効くから
SequenceのElementは↓なのでエラーメッセージにあるようにInt?じゃなくIntにする
associatedtype Element where Self.Element == Self.Iterator.Element
41デフォルトの名無しさん (ワッチョイ 4f35-1a2e)
2021/06/28(月) 12:52:19.56ID:eks/qTPV042デフォルトの名無しさん (ワッチョイ 4f35-1a2e)
2021/06/29(火) 07:37:54.03ID:2raiHHQH0 >>37
func makeIterator() -> Iterator {
return Iterator()
この部分はdefault implementationがあるとAPI referenceにある。
Jump to Definitionでソースを見てみる!
func makeIterator() -> Iterator {
return Iterator()
この部分はdefault implementationがあるとAPI referenceにある。
Jump to Definitionでソースを見てみる!
43デフォルトの名無しさん (ワッチョイ 4f35-1a2e)
2021/06/29(火) 07:45:51.58ID:2raiHHQH0 >>42
これか!
where Self == Self.Iterator
これはどう言う事でしょうか?
/// A default makeIterator() function for `IteratorProtocol` instances that
/// are declared to conform to `Sequence`
extension Sequence where Self == Self.Iterator {
/// Returns an iterator over the elements of this sequence.
@inlinable public func makeIterator() -> Self
}
これか!
where Self == Self.Iterator
これはどう言う事でしょうか?
/// A default makeIterator() function for `IteratorProtocol` instances that
/// are declared to conform to `Sequence`
extension Sequence where Self == Self.Iterator {
/// Returns an iterator over the elements of this sequence.
@inlinable public func makeIterator() -> Self
}
44デフォルトの名無しさん (ワッチョイ 4f35-1a2e)
2021/06/29(火) 07:50:38.38ID:2raiHHQH045デフォルトの名無しさん (ワッチョイ 4f35-1a2e)
2021/06/29(火) 08:11:12.07ID:2raiHHQH0 >>43
この部分は実装では無く、別Sequenceの別シグネチャによる定義なのかな?
XcodeのJump to Definition機能ではdefault implementationを発見することは出来なかった。
この部分は実装では無く、別Sequenceの別シグネチャによる定義なのかな?
XcodeのJump to Definition機能ではdefault implementationを発見することは出来なかった。
46デフォルトの名無しさん (ワッチョイ 8f8c-eHmd)
2021/06/30(水) 09:59:39.81ID:xkSteTRI0 非同期処理でTwitterAPI通信を行なって(Twitterライブラリ Swifter使用)、あるユーザーの最新ツイート一件を(30秒くらいの間)取得し続け、そのユーザーがツイートを行いツイートが更新された瞬間 そのツイートを表示するという仕組みを作りたいのですが、
( 早い者勝ちシステムに勝つため)
ループ部分の良い案が思いつきません、アドバイスいただけませんでしょうか
以下がSwifterライブラリで用意されたのユーザーの最新ツイート一件を取得する関数です、ツイートの取得に成功するとsuccess 、APIエラー等で取得できない場合はfailureが帰ります
ループを行いsuccess時に取得したツイートが前回 取得時のテキストと異なっていたら そのテキストを返すという関数を作りたいので、もし可能でしたらアドバイスやコードをお願いしたいです。長々と申し訳ありません
swifter.getTimeline(for: .screenName("ターゲットのID"),count:1 , success: { json in
// 成功時の処理
print(json[0]["text"])
}, failure: { error in
// 失敗時の処理
print(error)
})
( 早い者勝ちシステムに勝つため)
ループ部分の良い案が思いつきません、アドバイスいただけませんでしょうか
以下がSwifterライブラリで用意されたのユーザーの最新ツイート一件を取得する関数です、ツイートの取得に成功するとsuccess 、APIエラー等で取得できない場合はfailureが帰ります
ループを行いsuccess時に取得したツイートが前回 取得時のテキストと異なっていたら そのテキストを返すという関数を作りたいので、もし可能でしたらアドバイスやコードをお願いしたいです。長々と申し訳ありません
swifter.getTimeline(for: .screenName("ターゲットのID"),count:1 , success: { json in
// 成功時の処理
print(json[0]["text"])
}, failure: { error in
// 失敗時の処理
print(error)
})
47デフォルトの名無しさん (ワッチョイ 7f35-k50j)
2021/07/04(日) 15:02:10.40ID:PTgpkIAJ0 Combineフレームワークを弄ってる。
自前のSubscriber, 例えばWeatherInfoを受け取るWeatherSubscriberクラスを実装しようとすると、大変なのだと気がついた。
UITableViewDelegateがtableViewメソッドの実装をたくさん求めるのと同様に、Subscriberはreceiveのシグネチャ違いのメソッドを3つも求めて来る。
e.g.
receive:_
receive:subscription
receive:completion
自前のSubscriber, 例えばWeatherInfoを受け取るWeatherSubscriberクラスを実装しようとすると、大変なのだと気がついた。
UITableViewDelegateがtableViewメソッドの実装をたくさん求めるのと同様に、Subscriberはreceiveのシグネチャ違いのメソッドを3つも求めて来る。
e.g.
receive:_
receive:subscription
receive:completion
48デフォルトの名無しさん (ワッチョイ 7f35-k50j)
2021/07/05(月) 07:20:36.29ID:bBZppKt50 MVVMって何だ?
とずっと思ってたがMVCにObserver/Observableなメカニズムを導入したものだと理解した。
SwiftUI使えば必然的にMVVMを採用せざるを得ないという、良記事がここに!
https://tech-blog.rakus.co.jp/entry/20210331/swift
RxSwift付属のPlaygroundを開くとマシンのLoadAverageが飛び上がりXcodeがカクカク動いて閉口していた2017年頃から、気になってたのだ。
とずっと思ってたがMVCにObserver/Observableなメカニズムを導入したものだと理解した。
SwiftUI使えば必然的にMVVMを採用せざるを得ないという、良記事がここに!
https://tech-blog.rakus.co.jp/entry/20210331/swift
RxSwift付属のPlaygroundを開くとマシンのLoadAverageが飛び上がりXcodeがカクカク動いて閉口していた2017年頃から、気になってたのだ。
49デフォルトの名無しさん (アウアウエー Sa82-28NW)
2021/07/05(月) 08:29:19.96ID:CIIXcSIba アーキテクトの話に、あー聞いたことあるってなりたい
50デフォルトの名無しさん (スップ Sd4a-tKHk)
2021/07/06(火) 17:09:41.61ID:aMSJ7UkJd51デフォルトの名無しさん (ワッチョイ 758c-4x/S)
2021/07/09(金) 14:43:33.42ID:Bmeh7adm0 dispatch使って非同期の処理を並列化させて
1番早かった処理が1つ完了したら処理を止めるなんてできる?
1番早かった処理が1つ完了したら処理を止めるなんてできる?
52デフォルトの名無しさん (ワッチョイ 758c-4x/S)
2021/07/09(金) 17:42:02.52ID:Bmeh7adm0 非同期処理1: ----->キャンセル
非同期処理2: ----------->完了★ 一つが終わった時他を止めたい
非同期処理3: -->キャンセル
非同期処理2: ----------->完了★ 一つが終わった時他を止めたい
非同期処理3: -->キャンセル
53デフォルトの名無しさん (ワッチョイ a301-knaX)
2021/07/09(金) 18:03:36.19ID:w0l6CXLG0 3つ全部にキャンセル投げる処理をそれぞれのCompletion Handlerに入れとけば?
最近は変わってるかもだけど昔はキャンセルが必要なやつはDispatchWorkItem使ってた
非同期処理側でキャンセルリクエストされたかどうかをチェックして自分で処理を抜ける必要はある
最近は変わってるかもだけど昔はキャンセルが必要なやつはDispatchWorkItem使ってた
非同期処理側でキャンセルリクエストされたかどうかをチェックして自分で処理を抜ける必要はある
54デフォルトの名無しさん (ワッチョイ 758c-4x/S)
2021/07/09(金) 22:10:32.71ID:Bmeh7adm0 ありがとうございます。 ちょっとやってみます
55デフォルトの名無しさん (ワッチョイ 4bda-jBUj)
2021/07/14(水) 02:46:29.81ID:Z9MQZom50 IAP詳しい人いたら教えて下さい。
1.自動更新のサブスクリプションを購入
2.アプリをアンインストール+再インストール
3.リストア(SKReceiptRefreshRequest)実行
サーバ側でレシート検証を行うと、
「1」で購入した時のレシートに含まれるInApp.TransactionIDが
「3」で更新されたレシートに含まれるInApp.TransactionIDが変わってしまってます。
PurchaseDateとかその他フィールドはすべて同じ。
TransactionIDだけ変わってしまってます(sandbox)。
これは仕様でしょうか?それともApple側の不具合?
1.自動更新のサブスクリプションを購入
2.アプリをアンインストール+再インストール
3.リストア(SKReceiptRefreshRequest)実行
サーバ側でレシート検証を行うと、
「1」で購入した時のレシートに含まれるInApp.TransactionIDが
「3」で更新されたレシートに含まれるInApp.TransactionIDが変わってしまってます。
PurchaseDateとかその他フィールドはすべて同じ。
TransactionIDだけ変わってしまってます(sandbox)。
これは仕様でしょうか?それともApple側の不具合?
56デフォルトの名無しさん (JP 0H43-/6+5)
2021/07/14(水) 07:55:15.35ID:wgyTk/upH57デフォルトの名無しさん (ワッチョイ a301-knaX)
2021/07/14(水) 08:19:51.99ID:idSc395A058デフォルトの名無しさん (ワッチョイ 05da-Y02U)
2021/07/14(水) 08:41:37.27ID:QnWeAExd0 C系を経てswift の勉強を始めたけど
この言語作った人頭おかしい
かなりのひねくれものだと思う
この言語作った人頭おかしい
かなりのひねくれものだと思う
59デフォルトの名無しさん (ワッチョイ ad35-/6+5)
2021/07/14(水) 08:49:24.63ID:7XtdSzBj0 >>58
Is Swift getting too complicated? – Chris Lattner on Swiftly Speaking
この動画によると、言語オタクがContributerに集ってる。
どの点がひねくれてる?
Is Swift getting too complicated? – Chris Lattner on Swiftly Speaking
この動画によると、言語オタクがContributerに集ってる。
どの点がひねくれてる?
60デフォルトの名無しさん (ワッチョイ 05da-Y02U)
2021/07/14(水) 08:52:56.60ID:QnWeAExd061デフォルトの名無しさん (ブーイモ MMcb-QKhL)
2021/07/14(水) 09:03:51.43ID:GpWYiZZZM objective-cから引き継がれてる関数のことかな?
62デフォルトの名無しさん (ワッチョイ 05da-pAk4)
2021/07/14(水) 09:36:40.61ID:QnWeAExd063デフォルトの名無しさん (ワッチョイ 4bda-jBUj)
2021/07/14(水) 17:25:39.94ID:Z9MQZom50 >>57
勉強になりました。
>This value has the same format as the transaction’s transactionIdentifier property; however, the values may not be the same.
さり気なく怖いこと書かれてたのでサーバ側実装やり直しなんですが、
クライアント側の購入トランザクションと、サーバ側のInApp配列レコードを紐付けるのがトランザクションIDだと考えていたのですが、紐付かないケースもあるってことですね。
怖い仕様だ。。。
でも、紐付かないとなるとリストアができないと思われるのですが。。。
勉強になりました。
>This value has the same format as the transaction’s transactionIdentifier property; however, the values may not be the same.
さり気なく怖いこと書かれてたのでサーバ側実装やり直しなんですが、
クライアント側の購入トランザクションと、サーバ側のInApp配列レコードを紐付けるのがトランザクションIDだと考えていたのですが、紐付かないケースもあるってことですね。
怖い仕様だ。。。
でも、紐付かないとなるとリストアができないと思われるのですが。。。
6463 (ワッチョイ 4bda-jBUj)
2021/07/14(水) 18:33:35.47ID:Z9MQZom50 >でも、紐付かないとなるとリストアができないと思われるのですが。。。
思い違いでした。
オリジナルトランザクションIDを参照することでリストアできそうです。
ただ、購入時のレコード作成が出来ない気がします。
InApp配列から、購入時のトランザクションを特定して、PurchaseDateとExpiresDateを抽出する必要があると思いますが、
クライアント側のトランザクションIDと一致しない場合もあるとなると、仕様として破綻してしまいそうな。。。
思い違いでした。
オリジナルトランザクションIDを参照することでリストアできそうです。
ただ、購入時のレコード作成が出来ない気がします。
InApp配列から、購入時のトランザクションを特定して、PurchaseDateとExpiresDateを抽出する必要があると思いますが、
クライアント側のトランザクションIDと一致しない場合もあるとなると、仕様として破綻してしまいそうな。。。
65デフォルトの名無しさん (ワッチョイ bd10-jJbE)
2021/07/14(水) 23:31:41.41ID:91j44Gao0 もうSwityStoreKit使えよ
66デフォルトの名無しさん (ワッチョイ 4bda-jBUj)
2021/07/15(木) 01:09:16.63ID:aRnsaX9N0 SwityStoreKitはクライアント側ライブラリですね。
クライアント側もほぼ実装終わってからSwityStoreKitってのがあるのを知りましたw
最初から知ってれば使ってましたが、、、
サーバ側でもうひとつおかしな仕様を発見しました。
1.自動更新コンテンツの定期購入をする
2.レシートをサーバ側で検証する@
3.アプリ終了
4.アプリ起動
5.レシートをサーバ側で検証するA
@とAでレシートに含まれるInAppのTransactionIDが違っていた。その他フィールドは同一の値。
起動のたびにレシートをサーバ側で検証して、定期購入中かどうかを判断するやり方が良いのかどうかは分からないけど。。。
クライアント側もほぼ実装終わってからSwityStoreKitってのがあるのを知りましたw
最初から知ってれば使ってましたが、、、
サーバ側でもうひとつおかしな仕様を発見しました。
1.自動更新コンテンツの定期購入をする
2.レシートをサーバ側で検証する@
3.アプリ終了
4.アプリ起動
5.レシートをサーバ側で検証するA
@とAでレシートに含まれるInAppのTransactionIDが違っていた。その他フィールドは同一の値。
起動のたびにレシートをサーバ側で検証して、定期購入中かどうかを判断するやり方が良いのかどうかは分からないけど。。。
67デフォルトの名無しさん (アウアウウー Sa09-4x/S)
2021/07/15(木) 10:09:28.26ID:d1aKwnRba Userdefaultの値を使って、クラスをインスタンス化
したいのですが、グローバル変数もしくはメンバ変数でこれを宣言したい(いくつかの関数内でクラスメソッドを使用したいため) 場合はどのように宣言すればいいですか?
したいのですが、グローバル変数もしくはメンバ変数でこれを宣言したい(いくつかの関数内でクラスメソッドを使用したいため) 場合はどのように宣言すればいいですか?
68デフォルトの名無しさん (ワッチョイ ad35-/6+5)
2021/07/15(木) 11:48:11.03ID:rOYlGMFB0 >>60
なるほどぉ。そうだよね。
method signature(type singnature, 同名のメソッドが複数存在するときに、各々区別するための情報)
が独特とかいう話かな。
他の言語も個性的だと思うけど。初期値つき引数の記載方法とか、可変個引数、Variadic Argumentsの記載方法とか、言語によってバラバラだし。
なるほどぉ。そうだよね。
method signature(type singnature, 同名のメソッドが複数存在するときに、各々区別するための情報)
が独特とかいう話かな。
他の言語も個性的だと思うけど。初期値つき引数の記載方法とか、可変個引数、Variadic Argumentsの記載方法とか、言語によってバラバラだし。
69デフォルトの名無しさん (ワッチョイ d901-gi0+)
2021/07/24(土) 10:14:53.83ID:+KsHl2oE0 最近始めたばかりの初心者ですが、一つだけ質問させてください
ViewController
>view
>view1
>view2
こんな感じで画面全体のview1の上に、もう一枚の正方形のview2を置きたいのだけれど
真ん中にview2を設置するとちゃんと表示されるけど、下部に設置すると
>view
>view1
>view2
こうなってしまってビルドしてもview2が表示されなくなってしまう
ググってもなかなか解決できなくて、最終手段で質問させていただきました…
もしよければヒントでもいいので教えてください
ViewController
>view
>view1
>view2
こんな感じで画面全体のview1の上に、もう一枚の正方形のview2を置きたいのだけれど
真ん中にview2を設置するとちゃんと表示されるけど、下部に設置すると
>view
>view1
>view2
こうなってしまってビルドしてもview2が表示されなくなってしまう
ググってもなかなか解決できなくて、最終手段で質問させていただきました…
もしよければヒントでもいいので教えてください
70デフォルトの名無しさん (ワッチョイ 695f-hZWg)
2021/07/24(土) 19:58:09.28ID:4fhla4Sv0 superview と subviewがどういうものかは理解できてる?
>> 画面全体のview1の上に、もう一枚の正方形のview2を置きたい
のなら最初から下の構成が正解のはずで、viewの位置でヒエラルキーが
変わっちゃうなら、そもそもview1が画面全体を覆ってないんじゃないかと
思うけどどうでしょうか
>> 画面全体のview1の上に、もう一枚の正方形のview2を置きたい
のなら最初から下の構成が正解のはずで、viewの位置でヒエラルキーが
変わっちゃうなら、そもそもview1が画面全体を覆ってないんじゃないかと
思うけどどうでしょうか
71デフォルトの名無しさん (ワッチョイ d901-gi0+)
2021/07/25(日) 15:15:37.79ID:JOmGddZ50 >>70
superviewは一番最初からあるviewでsubviewは後から自分で追加したものって感じでしょうか?
たしかに下の構成が正解に思えますね…
view1は、4辺とも0で制約かけて画面一杯に広げてます
あれから色々触ってみて、一応storyboard上は制約もかけてview2を1の下部に置くことが出来たのですが、ビルドするとview1の下に入ってしまっています…
superviewは一番最初からあるviewでsubviewは後から自分で追加したものって感じでしょうか?
たしかに下の構成が正解に思えますね…
view1は、4辺とも0で制約かけて画面一杯に広げてます
あれから色々触ってみて、一応storyboard上は制約もかけてview2を1の下部に置くことが出来たのですが、ビルドするとview1の下に入ってしまっています…
72デフォルトの名無しさん (ワッチョイ d901-gi0+)
2021/07/25(日) 15:34:45.82ID:JOmGddZ50 なんかよく分からないけど解決しました
73デフォルトの名無しさん (ワッチョイ 5135-hZWg)
2021/07/27(火) 08:23:51.84ID:VUCtiYXg074デフォルトの名無しさん (ワッチョイ 992d-hZWg)
2021/07/27(火) 10:39:45.20ID:NHKQwJbe0 困った時はxcode再起動
75デフォルトの名無しさん (ワッチョイ d101-WZ6z)
2021/08/08(日) 13:57:21.77ID:UvnbNG8C0 >>71
storyboardはツリー表示順、下にあるほど前面に表示される
storyboardはツリー表示順、下にあるほど前面に表示される
76デフォルトの名無しさん (ワッチョイ d101-WZ6z)
2021/08/08(日) 14:01:32.36ID:UvnbNG8C0 ビジネスアプリ作るのにSwiftって選択はもう無いけどな
77デフォルトの名無しさん (ワッチョイ 9901-wnQR)
2021/08/13(金) 10:35:06.43ID:UQXwRNun0 そろそろswiftUI使って良いかな?
まだ早いかな
まだ早いかな
78デフォルトの名無しさん (アウアウエー Sa4a-EfjD)
2021/08/13(金) 19:00:11.24ID:SOURQaoHa 使いたいけど使いこなせません
なんかHTMLぽい雰囲気が苦手
なんかHTMLぽい雰囲気が苦手
79デフォルトの名無しさん (ワッチョイ aebb-rk8R)
2021/08/13(金) 21:57:52.94ID:2O5TgtP80 SwiftUI使い始めたらめちゃくちゃ楽でもう戻れない。
あっという間に画面できるのすごい。
不便なところも多々あるけど。
あっという間に画面できるのすごい。
不便なところも多々あるけど。
80デフォルトの名無しさん (ワッチョイ 8101-O0dC)
2021/08/14(土) 14:45:21.83ID:da7K/4910 SwiftUI実務で全く使えない
flutterの2年遅れって感じ
flutterの2年遅れって感じ
81デフォルトの名無しさん (ワッチョイ ed35-iWai)
2021/08/14(土) 15:48:29.52ID:t+O968D50 SwiftUIのPreviewがXcode13beta 5でチョイと速くなった気がする。
俺の気のせいか?
ちなみにIntel Macです。
俺の気のせいか?
ちなみにIntel Macです。
82デフォルトの名無しさん (ワッチョイ 6e63-Eilb)
2021/08/27(金) 21:57:06.24ID:6OaQuF0B0 ご存知の方がいたら教えて下さい。
アルバムから写真を複数選択して取り込みたいのですが、選択をする際に標準アルバムアプリの様に日付でソートや検索させる事が出来る方法はありませんでしょうか?
現在複数選択させる為にDKImagePickerControllerを取り入れてみましたがどうも出来ないみたいで・・・。
アルバムから写真を複数選択して取り込みたいのですが、選択をする際に標準アルバムアプリの様に日付でソートや検索させる事が出来る方法はありませんでしょうか?
現在複数選択させる為にDKImagePickerControllerを取り入れてみましたがどうも出来ないみたいで・・・。
83デフォルトの名無しさん (ワッチョイ 4510-jH7c)
2021/08/28(土) 09:04:53.46ID:Qr4OfQvA0 ライブラリ使わないで作っちゃえば?
84デフォルトの名無しさん (ワッチョイ 6e63-Eilb)
2021/08/28(土) 13:23:58.20ID:P8wU/O7S0 >>83
レスありがとうございます!
現状勉強し始めた所で作るスキルも余裕も無いので出来ればまずはライブラリが使えればと思っておりました。
AppleのPHPickerも見よう見まねで使ってみたのですが私のやり方が下手なのか選択後の表示までがかなり時間掛かってダメでした。
やはりライブラリではないのですかね・・・。
レスありがとうございます!
現状勉強し始めた所で作るスキルも余裕も無いので出来ればまずはライブラリが使えればと思っておりました。
AppleのPHPickerも見よう見まねで使ってみたのですが私のやり方が下手なのか選択後の表示までがかなり時間掛かってダメでした。
やはりライブラリではないのですかね・・・。
85デフォルトの名無しさん (ワッチョイ 3d02-Wqn1)
2021/08/28(土) 18:51:00.16ID:Mpcgs7u70 テキストエディタみたいなの作ろうとしててハイライトや文字色変更はAttributedString使えばいいのはわかったけど空白や改行をblank文字や矢印で可視化するのって(UI)TextFieldに対して実装できる?
86デフォルトの名無しさん (ブーイモ MM66-CUGY)
2021/08/29(日) 09:43:42.69ID:Fbx5nxuOM 空白は大丈夫だろうけど改行とか不可視文字はダメな場合があるかもね
とりあえずはlayoutManagerのshowsInvisibleCharactersを使えば可視化できる
カスタマイズしたければlayoutManagerのdelegate
とりあえずはlayoutManagerのshowsInvisibleCharactersを使えば可視化できる
カスタマイズしたければlayoutManagerのdelegate
87デフォルトの名無しさん (ワッチョイ 3d02-Wqn1)
2021/08/29(日) 11:20:49.34ID:5Xgbb4oG0 >>86
ありがとう試してみる
ありがとう試してみる
88デフォルトの名無しさん (ワッチョイ 2792-Hlg3)
2021/09/06(月) 04:08:41.72ID:tsmA7sn60 テーブルビューのセルをドラッグで並び替えたいです
セルはカスタムセルを使ってます
tableView.isEditing=trueにした時に
削除ボタンは勝手に左に出てくるんですが
逆に並び替えボタン(3本線のやつ)が
セルの右に出てこなくて困ってます
カスタムセルを使ってる場合は
並び替えをどう実現すればいいのでしょうか?
ググってもデフォルトのセルの説明ばかりで
カスタムセルの並び替えの情報が少なく、、、
セルはカスタムセルを使ってます
tableView.isEditing=trueにした時に
削除ボタンは勝手に左に出てくるんですが
逆に並び替えボタン(3本線のやつ)が
セルの右に出てこなくて困ってます
カスタムセルを使ってる場合は
並び替えをどう実現すればいいのでしょうか?
ググってもデフォルトのセルの説明ばかりで
カスタムセルの並び替えの情報が少なく、、、
89デフォルトの名無しさん (ワッチョイ 2710-bmQz)
2021/09/06(月) 08:12:17.33ID:+CkE21X40 カスタムセルでも3本線出るよ
レイアウトの設定がおかしいのでは
レイアウトの設定がおかしいのでは
90デフォルトの名無しさん (ワッチョイ 2792-Hlg3)
2021/09/06(月) 10:48:19.94ID:tsmA7sn60 >>89
こんな感じですね…
https://i.imgur.com/CoOvluV.png
contentViewの背景を透明にしてるせいかなと
思ったのですがグレーにしても表示されず…
その3本線はセルがどういう構造であっても
一番上のレイヤーの右端に描画されるんでしょうか…?
こんな感じですね…
https://i.imgur.com/CoOvluV.png
contentViewの背景を透明にしてるせいかなと
思ったのですがグレーにしても表示されず…
その3本線はセルがどういう構造であっても
一番上のレイヤーの右端に描画されるんでしょうか…?
91デフォルトの名無しさん (ワッチョイ 7fbb-mTzs)
2021/09/06(月) 23:18:52.11ID:515INs2m0 SwiftUI のeditMode がactive の時、特定のセルだけonDelete を効かなくするとか出来ますか?
92デフォルトの名無しさん (ワッチョイ f192-rXSq)
2021/09/11(土) 22:56:55.54ID:KYjr6rec0 誰かほんとに助けて下さい…
画像を消したつもりがxcassetを消してしまったらしく
リファレンス削除じゃなくて本削除をしてしまい
ゴミ箱にすら元ファイルがない状況です
NewFileから新しくxcasset を追加して
そこに元々あった画像を入れ直したのですが
ビルドは通るのですが実際には画像が全く表示されません
100時間くらいかけて作ったのに
たった1つのミスでおじゃんになるとは…
誰か助けて下さい…
画像を消したつもりがxcassetを消してしまったらしく
リファレンス削除じゃなくて本削除をしてしまい
ゴミ箱にすら元ファイルがない状況です
NewFileから新しくxcasset を追加して
そこに元々あった画像を入れ直したのですが
ビルドは通るのですが実際には画像が全く表示されません
100時間くらいかけて作ったのに
たった1つのミスでおじゃんになるとは…
誰か助けて下さい…
93デフォルトの名無しさん (ワッチョイ 5d2d-9yYO)
2021/09/11(土) 23:14:04.98ID:DsmB+o7j0 Time MachineかGitHUbに残ってるだろ
94デフォルトの名無しさん (ワッチョイ f192-rXSq)
2021/09/11(土) 23:20:57.26ID:KYjr6rec095デフォルトの名無しさん (ワッチョイ e6bb-CGct)
2021/09/11(土) 23:29:01.07ID:+YwOBNLO0 ならもうないんじゃない?
ただ入れるだけじゃなくて、画像の名前も揃えなきゃ読み込まないよ。
ただ入れるだけじゃなくて、画像の名前も揃えなきゃ読み込まないよ。
96デフォルトの名無しさん (ワッチョイ 1110-fQPG)
2021/09/11(土) 23:34:18.26ID:Ct4X6m5V0 Time Machine使ってないとか自殺行為だろ
97デフォルトの名無しさん (ワッチョイ f192-rXSq)
2021/09/11(土) 23:49:34.44ID:KYjr6rec0 >>95
画像の名前は変えてないですね
元画像は別のフォルダに入れてたので
元画像のファイル名がそのままファイル名になってます
画像の名前が同じでエラーも出ていなくて
それでも表示されないってどういうケースが
考えられますでしょうか?
…と打ちながら色々やって原因わかりました
xcassetが消えた時に何故かStoryboardの
ビュー達のレイヤーの上下関係がぐちゃぐちゃになってて
再背景のビューが最前列に来ていたので
エラー出ずに何の画像も表示されない感じになってました
すみません、回答くださった方々
ありがとうございます
タイムマシンてやつを調べてやってみます
画像の名前は変えてないですね
元画像は別のフォルダに入れてたので
元画像のファイル名がそのままファイル名になってます
画像の名前が同じでエラーも出ていなくて
それでも表示されないってどういうケースが
考えられますでしょうか?
…と打ちながら色々やって原因わかりました
xcassetが消えた時に何故かStoryboardの
ビュー達のレイヤーの上下関係がぐちゃぐちゃになってて
再背景のビューが最前列に来ていたので
エラー出ずに何の画像も表示されない感じになってました
すみません、回答くださった方々
ありがとうございます
タイムマシンてやつを調べてやってみます
98デフォルトの名無しさん (ワッチョイ 5d2d-9yYO)
2021/09/11(土) 23:57:05.15ID:DsmB+o7j0 年金が振り込まれません
どうしたらいいですか?
賭け金は払ったことありません
どうしたらいいですか?
賭け金は払ったことありません
99デフォルトの名無しさん (ワッチョイ f192-rXSq)
2021/09/13(月) 11:11:50.02ID:QUCWX/FL0 色々調べたんですがタイムマシンは
ノートPCだし容量が足りなさそうなので
gitのローカルリポジトリってやつでやります
最初からこれ使ってれば
git reset --hard HEAD
の1行で元に戻せたのか…なんて事だ…
ノートPCだし容量が足りなさそうなので
gitのローカルリポジトリってやつでやります
最初からこれ使ってれば
git reset --hard HEAD
の1行で元に戻せたのか…なんて事だ…
100デフォルトの名無しさん (ワッチョイ e6bb-wKQc)
2021/09/13(月) 11:41:37.44ID:mzfDd3AK0 ローカルリポジトリだけだと内部ストレージが死んだらまた消えちゃうからタイムマシンと併用がいいんじゃね?
それにタイムマシンは外付けストレージに保存するからノートPCとかあんまり関係ないかと
あとストレージの痕跡からファイルを復活させるフリーウェアも探せば見つかる
それにタイムマシンは外付けストレージに保存するからノートPCとかあんまり関係ないかと
あとストレージの痕跡からファイルを復活させるフリーウェアも探せば見つかる
101デフォルトの名無しさん (ワッチョイ f192-rXSq)
2021/09/13(月) 12:18:34.94ID:QUCWX/FL0 >>100
ローカルリポジトリなんだけども
作業ディレクトリをDropboxにしておけば
その点は解決するのではないかと思ってるのですが
どうでしょうか?
ノートPCで持ち運びしょっちゅうしていて
外付けHDDとセットで考えるのがあまり考えられず…
ローカルリポジトリなんだけども
作業ディレクトリをDropboxにしておけば
その点は解決するのではないかと思ってるのですが
どうでしょうか?
ノートPCで持ち運びしょっちゅうしていて
外付けHDDとセットで考えるのがあまり考えられず…
レスを投稿する
ニュース
- 【おこめ】ベトナムから密輸のコメを「国産」と偽り販売容疑、ベトナム人ら2人追送検…300トン売って1億3000万円稼いだか 大阪 [ぐれ★]
- TBS「THE TIME」 収録中にリポーターの原千晶さんが負傷と発表 [muffin★]
- 高市首相「いいから黙って全部オレに投資しろ」“進撃の巨人”のセリフで対日投資呼びかけ ★2 [おっさん友の会★]
- 【速報】長期金利、一時1.850%に上昇 ★2 [蚤の市★]
- 【GILF】60代女性のスカート中を撮影しようと…韓国籍の男(29)を逮捕 対馬市 [nita★]
- モーニングショーで女性弁護士、「世界中の国を見渡しても日本ほど中国ともめている国は今はどこもない」「挑発しちゃっている状況」★2 [muffin★]
- 流行語大賞 「働いて働いて働いて」 に [546716239]
- 【高市朗報】高橋洋一「日本の財政がこのまま悪化すれば金利がひゅーーーっと上がってなんと円高になるんです!」 [931948549]
- 立憲・原口「高市答弁は撤回する必要なし。悪いのは岡田だ。私が幹事長なら除名にする」 [834922174]
- 【悲報】中華ゲームのゼンゼロ、アプデで日本語音声が無くなりネトウヨ大発狂 [347751896]
- 【悲報】わい、前科がつくwawawawawawawawawaxawawawawa
- 【画像あり】こういう、鼠径部がチラ見えしてる恰好ってエロいよね
