タグ付けされた質問 「swift」

Swiftは、Apple Inc.が自社のプラットフォームとLinux用に開発した、安全で高速、かつ表現力豊かな汎用プログラミング言語です。Swiftはオープンソースです。このタグは、言語機能に関する質問、またはSwiftのコードが必要な場合にのみ使用してください。プラットフォームまたはフレームワークに関する(言語に依存しない)質問には、タグ[ios]、[ipados]、[macos]、[watch-os]、[tvos]、[cocoa-touch]、および[cocoa]を使用します。

4
Swiftでの複数の型制約
私がこれらのプロトコルを持っているとしましょう: protocol SomeProtocol { } protocol SomeOtherProtocol { } ここで、ジェネリック型を取る関数が必要だが、その型が準拠している必要がある場合は、次のようにするSomeProtocolことができます。 func someFunc<T: SomeProtocol>(arg: T) { // do stuff } しかし、複数のプロトコルに型制約を追加する方法はありますか? func bothFunc<T: SomeProtocol | SomeOtherProtocol>(arg: T) { } 同様のものはコンマを使用しますが、この場合、別の型の宣言を開始します。これが私が試したものです。 <T: SomeProtocol | SomeOtherProtocol> <T: SomeProtocol , SomeOtherProtocol> <T: SomeProtocol : SomeOtherProtocol>
133 swift 

5
Swift拡張機能でのメソッドのオーバーライド
私は必要なもの(保存されたプロパティ、初期化子)だけをクラス定義に入れ、他のものすべてを独自のに移動する傾向があります。これは、グループ化する論理ブロックごとextensionのようなものです。extension// MARK: たとえば、UIViewサブクラスの場合、イベントにサブスクライブして処理するためのレイアウトなど、レイアウト関連の拡張機能が必要になります。これらの拡張機能では、必然的にいくつかのUIKitメソッドをオーバーライドする必要がありますlayoutSubviews。今日まで、このアプローチの問題に気づくことはありませんでした。 このクラス階層を例にとります: public class C: NSObject { public func method() { print("C") } } public class B: C { } extension B { override public func method() { print("B") } } public class A: B { } extension A { override public func method() { print("A") } } …


18
Objective-Cで行ったのと同じように、Swiftにプロパティを保存するにはどうすればよいですか?
アプリケーションをObjective-CからSwiftに切り替えます。これには、保存されたプロパティを持ついくつかのカテゴリがあります。次に例を示します。 @interface UIView (MyCategory) - (void)alignToView:(UIView *)view alignment:(UIViewRelativeAlignment)alignment; - (UIView *)clone; @property (strong) PFObject *xo; @property (nonatomic) BOOL isAnimating; @end Swift拡張機能はこれらのような格納されたプロパティを受け入れないため、Objcコードと同じ構造を維持する方法がわかりません。保存されたプロパティは私のアプリにとって本当に重要であり、AppleはSwiftでそれを行うためのいくつかのソリューションを作成したに違いないと思います。 jouが言ったように、私が探していたのは実際には関連オブジェクトを使用することだったので、別のコンテキストで使用しました。 import Foundation import QuartzCore import ObjectiveC extension CALayer { var shapeLayer: CAShapeLayer? { get { return objc_getAssociatedObject(self, "shapeLayer") as? CAShapeLayer } set(newValue) { objc_setAssociatedObject(self, "shapeLayer", newValue, UInt(OBJC_ASSOCIATION_RETAIN)) } …

11
stringByAppendingPathComponentは使用できません
私のアプリはInstagramで写真を共有します。これを行うには、まず一時ディレクトリに保存します。 let writePath = NSTemporaryDirectory().stringByAppendingPathComponent("instagram.igo") 動作していましたが動作しSwift 1.2ませんでしたSwift 2.0。 与えられたエラーメッセージは: stringByAppendingPathComponentは使用できません。代わりにNSURLのURLByAppendingPathComponentを使用してください。
132 ios  swift  swift2 

6
Swiftでさらに便利なキーワードが必要なのはなぜですか?
Swiftはメソッドとイニシャライザのオーバーロードをサポートしているので、複数をinit並べて配置して、都合の良い方を使用できます。 class Person { var name:String init(name: String) { self.name = name } init() { self.name = "John" } } では、なぜconvenienceキーワードが存在するのでしょうか?次の点が大幅に改善されている理由は何ですか? class Person { var name:String init(name: String) { self.name = name } convenience init() { self.init(name: "John") } }


17
Swiftで経過時間を測定する
Swiftで関数を実行するために経過した時間をどのように測定できますか?「経過時間は.05秒」のように経過時間を表示しようとしています。見たJavaで、我々はSystem.nanoTimeの()を使用することができ、任意の同等の方法は、これを達成するためにスウィフトで利用可能であるのですか? サンプルプログラムをご覧ください。 func isPrime(var number:Int) ->Bool { var i = 0; for i=2; i<number; i++ { if(number % i == 0 && i != 0) { return false; } } return true; } var number = 5915587277; if(isPrime(number)) { println("Prime number"); } else { println("NOT a prime number"); }


5
Swift 4の#selector()で@objc推論の非推奨に対処するにはどうすればよいですか?
プロジェクトのソースコードをSwift 3からSwift 4に変換しようとしています。Xcodeから出される警告の1つは、セレクターに関するものです。 たとえば、次のような通常のセレクターを使用してボタンにターゲットを追加します。 button.addTarget(self, action: #selector(self.myAction), for: .touchUpInside) これはそれが示す警告です: 「#selector」の引数は、Swift 4で廃止された「@objc」属性推論に依存する「ViewController」のインスタンスメソッド「myAction()」を参照しています '@objc'を追加して、このインスタンスメソッドをObjective-Cに公開します。 今、Fixエラーメッセージを打つことは私の関数に対してこれを行います: // before func myAction() { /* ... */ } // after @objc func myAction() { /* ... */ } @objcマークを含むようにすべての関数の名前を変更したくないので、その必要はありません。 非推奨に対処するためにセレクターをどのように書き換えますか? 関連する質問: Swift 4モードでのSwift 3 @objc推論の使用は非推奨ですか?
131 swift  xcode  swift4 



9
Swiftでローカルビデオを再生する方法
mp4現在のXcode6 Betaプロジェクトに追加した短いビデオファイルがあります。 アプリで動画を再生したい。 何時間も検索しても、リモートで役立つ情報は見つかりません。Swiftでこれを達成する方法はありますか、またはObjective-Cを使用する必要がありますか?正しい方向に向けることができますか?これを考えているのは私だけではありません。


13
プログラムでナビゲーションバーの高さを取得する
moreビューコントローラー(ナビゲーションバー)の存在がUIViewの高さを押し下げることは知っています。この高さ= 44pxであることも知っています。このプッシュダウンがを維持していることも発見しました[self.view].frame.origin.y = 0。 では、このナビゲーションバーの高さを、定数に設定するだけでなく、どのように決定するのでしょうか。 または、より短いバージョンでは、UIViewがナビゲーションバーを上にして表示されていることをどのように判断しますか? 電球が点灯し始めました。残念ながら、以下で説明するように、問題を修正するための統一された方法を発見していません。 私の問題はすべて私の自動サイズ変更マスクに集中していると思います。そして、UIWebViewの有無にかかわらず、同じ現象が存在すると私が結論付けた理由。そしてその症状は、ポートレートにとってすべてが桃色だということです。ランドスケープの場合、一番下のUIButtonがTabBarの後ろにポップアップします。 たとえば、私が持っている1つのUIViewで、上から下へ: UIView –両方のスプリングが設定され(デフォルトの場合)、ストラットなし UIScrollView-2つのスプリングを設定し、その他すべて(UIViewなど)をクリアすると、UIButtonはそのすぐ上のオブジェクトに侵入します。すべてをクリアすると、UIButtonは問題ありませんが、最上部にあるものはStatusBarの後ろに隠れます。上部のストラットのみを設定すると、UIButtonはタブバーの後ろにポップアップします。 次の垂直方向のUILabelとUIImage –トップストラットセット、他のあらゆる場所で柔軟 UIWebViewを持っている少数の人のために画像を完成させるためだけに: UIWebView-Struts:上、左、右Springs:両方 UIButton –何も設定されていない、つまりどこでも柔軟 私の電球は暗いですが、希望があるようです。 短い返答コメントよりも多くのスペースが必要だったので、ご容赦ください。 私が実際に何のために釣りをしているのか理解してくれてありがとう...だからここに行く。 1)各UIViewController(TabBarアプリ)には、UIImage、いくつかのテキスト、その他の上に何でも持っています。別の共通点は、下部にあるUIButtonです。一部のUIViewControllersでは、UIButtonの上にUIWebViewがあります。 したがって、UIImage、テキストなど。UIWebView(一部の)UIButton 上記すべてを囲んでいるのがUIScrollViewです。 2)UIWebViewがあるものの場合、autoresizingMaskは次のようになります。 — | — ^ | | | — | ←----→| — | | | V UIButtonのマスクには何も設定されていません。つまり、どこでも柔軟です -viewDidLoad内で、-repositionSubViewsを呼び出し、その中で次のことを行います。 UIWebViewがない場合は、IBで配置したUIButtonを中央に配置する以外は何もしません。 UIWebViewがある場合は、その* content * Heightを決定して、コンテンツ全体を囲むようにフレームを設定します。 UIScrollView *scrollViewInsideWebView = …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.