Swift part13 (412レス)
1-

34: (ワッチョイ 2301-plNJ) 2021/06/14(月)11:17 ID:dKj7zboM0(1) AAS
ボタン押したらバックグラウンドでインカメラを作動して動画が保存される機能付けたいけど難しい?
35: (ワッチョイ 2301-YknO) 2021/06/16(水)21:34 ID:NAAsM4eN0(1) AAS
swift ui以前に、swiftそのものを使ってる人が居ない
36: (ワッチョイ a32d-Cdqd) 2021/06/17(木)05:45 ID:rV77MlmA0(1) AAS
SwiftUIな
スペースはいらない
37
(3): (ワッチョイ 4f35-1a2e) 2021/06/28(月)11:33 ID:eks/qTPV0(1/4) AAS
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とあるのに何故でしょう?
38
(1): (ワッチョイ 4f35-1a2e) 2021/06/28(月)11:39 ID:eks/qTPV0(2/4) AAS
>>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
39: (ワッチョイ 4f35-1a2e) 2021/06/28(月)12:02 ID:eks/qTPV0(3/4) AAS
>>38
Default implementationの件はSequenceのmakeIterator()の事です。
40
(1): (ワッチョイ 3f01-0Hhk) 2021/06/28(月)12:30 ID:/8Q9yNC80(1) AAS
>>37
コメントアウトしてもOKなのは推論が効くから

SequenceのElementは↓なのでエラーメッセージにあるようにInt?じゃなくIntにする
associatedtype Element where Self.Element == Self.Iterator.Element
41: (ワッチョイ 4f35-1a2e) 2021/06/28(月)12:52 ID:eks/qTPV0(4/4) AAS
>>40
Great Thanks.

typealias Element = Int
とするとCompile errorが消えました。
また、この文が無くても良いのは型推論なのですね。
42
(1): (ワッチョイ 4f35-1a2e) 2021/06/29(火)07:37 ID:2raiHHQH0(1/4) AAS
>>37
func makeIterator() -> Iterator {
return Iterator()

この部分はdefault implementationがあるとAPI referenceにある。
Jump to Definitionでソースを見てみる!
43
(2): (ワッチョイ 4f35-1a2e) 2021/06/29(火)07:45 ID:2raiHHQH0(2/4) AAS
>>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
}
44: (ワッチョイ 4f35-1a2e) 2021/06/29(火)07:50 ID:2raiHHQH0(3/4) AAS
>>43
Doubler == Doubler.Iterator
という意味なら、変なんですが!
45: (ワッチョイ 4f35-1a2e) 2021/06/29(火)08:11 ID:2raiHHQH0(4/4) AAS
>>43
この部分は実装では無く、別Sequenceの別シグネチャによる定義なのかな?

XcodeのJump to Definition機能ではdefault implementationを発見することは出来なかった。
46: (ワッチョイ 8f8c-eHmd) 2021/06/30(水)09:59 ID:xkSteTRI0(1) AAS
非同期処理で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)
})
47: (ワッチョイ 7f35-k50j) 2021/07/04(日)15:02 ID:PTgpkIAJ0(1) AAS
Combineフレームワークを弄ってる。
自前のSubscriber, 例えばWeatherInfoを受け取るWeatherSubscriberクラスを実装しようとすると、大変なのだと気がついた。

UITableViewDelegateがtableViewメソッドの実装をたくさん求めるのと同様に、Subscriberはreceiveのシグネチャ違いのメソッドを3つも求めて来る。

e.g.
receive:_
receive:subscription
receive:completion
 
48
(1): (ワッチョイ 7f35-k50j) 2021/07/05(月)07:20 ID:bBZppKt50(1) AAS
MVVMって何だ?
とずっと思ってたがMVCにObserver/Observableなメカニズムを導入したものだと理解した。

SwiftUI使えば必然的にMVVMを採用せざるを得ないという、良記事がここに!
外部リンク:tech-blog.rakus.co.jp

RxSwift付属のPlaygroundを開くとマシンのLoadAverageが飛び上がりXcodeがカクカク動いて閉口していた2017年頃から、気になってたのだ。
49: (アウアウエー Sa82-28NW) 2021/07/05(月)08:29 ID:CIIXcSIba(1) AAS
アーキテクトの話に、あー聞いたことあるってなりたい
50: (スップ Sd4a-tKHk) 2021/07/06(火)17:09 ID:aMSJ7UkJd(1) AAS
>>48
階層モデルなんてwin95辺りにチヤホヤされた構造やん。
どんだけ出遅れ脳持ちの出来損ないなの?Ww
51: (ワッチョイ 758c-4x/S) 2021/07/09(金)14:43 ID:Bmeh7adm0(1/3) AAS
dispatch使って非同期の処理を並列化させて
1番早かった処理が1つ完了したら処理を止めるなんてできる?
52: (ワッチョイ 758c-4x/S) 2021/07/09(金)17:42 ID:Bmeh7adm0(2/3) AAS
非同期処理1: ----->キャンセル

非同期処理2: ----------->完了★ 一つが終わった時他を止めたい

非同期処理3: -->キャンセル
53: (ワッチョイ a301-knaX) 2021/07/09(金)18:03 ID:w0l6CXLG0(1) AAS
3つ全部にキャンセル投げる処理をそれぞれのCompletion Handlerに入れとけば?

最近は変わってるかもだけど昔はキャンセルが必要なやつはDispatchWorkItem使ってた
非同期処理側でキャンセルリクエストされたかどうかをチェックして自分で処理を抜ける必要はある
54: (ワッチョイ 758c-4x/S) 2021/07/09(金)22:10 ID:Bmeh7adm0(3/3) AAS
ありがとうございます。 ちょっとやってみます
55
(1): (ワッチョイ 4bda-jBUj) 2021/07/14(水)02:46 ID:Z9MQZom50(1/3) AAS
IAP詳しい人いたら教えて下さい。

1.自動更新のサブスクリプションを購入
2.アプリをアンインストール+再インストール
3.リストア(SKReceiptRefreshRequest)実行

サーバ側でレシート検証を行うと、
「1」で購入した時のレシートに含まれるInApp.TransactionIDが
「3」で更新されたレシートに含まれるInApp.TransactionIDが変わってしまってます。
PurchaseDateとかその他フィールドはすべて同じ。
TransactionIDだけ変わってしまってます(sandbox)。

これは仕様でしょうか?それともApple側の不具合?
56: (JP 0H43-/6+5) 2021/07/14(水)07:55 ID:wgyTk/upH(1) AAS
>>17
>かと言って、ドロイド開発しても売れねーしなwww
自作アプリはともかく、フリーランスだと単価爆上がり中だろ > ドロイド
57
(1): (ワッチョイ a301-knaX) 2021/07/14(水)08:19 ID:idSc395A0(1) AAS
>>55
仕様
外部リンク:developer.apple.com
58
(1): (ワッチョイ 05da-Y02U) 2021/07/14(水)08:41 ID:QnWeAExd0(1/3) AAS
C系を経てswift の勉強を始めたけど
この言語作った人頭おかしい
かなりのひねくれものだと思う
59
(1): (ワッチョイ ad35-/6+5) 2021/07/14(水)08:49 ID:7XtdSzBj0(1) AAS
>>58
Is Swift getting too complicated? – Chris Lattner on Swiftly Speaking

この動画によると、言語オタクがContributerに集ってる。

どの点がひねくれてる?
60
(1): (ワッチョイ 05da-Y02U) 2021/07/14(水)08:52 ID:QnWeAExd0(2/3) AAS
>>59
後発言語なのに関数の定義とか独特すぎるわ
なんか狂気を感じる
61
(1): (ブーイモ MMcb-QKhL) 2021/07/14(水)09:03 ID:GpWYiZZZM(1) AAS
objective-cから引き継がれてる関数のことかな?
62: (ワッチョイ 05da-pAk4) 2021/07/14(水)09:36 ID:QnWeAExd0(3/3) AAS
>>61
Objective-Cも個性的過ぎて挫折した
あまりディスってるとアンチスレ行け言われそうだからもうやめるけど
63: (ワッチョイ 4bda-jBUj) 2021/07/14(水)17:25 ID:Z9MQZom50(2/3) AAS
>>57
勉強になりました。

>This value has the same format as the transaction’s transactionIdentifier property; however, the values may not be the same.
さり気なく怖いこと書かれてたのでサーバ側実装やり直しなんですが、
クライアント側の購入トランザクションと、サーバ側のInApp配列レコードを紐付けるのがトランザクションIDだと考えていたのですが、紐付かないケースもあるってことですね。
怖い仕様だ。。。
でも、紐付かないとなるとリストアができないと思われるのですが。。。
1-
あと 349 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.019s