storyboardやxibを使わずにプログラムでCollectionViewCellを作る方法

投稿者: Anonymous プログラム初心者です。 xcode7のswift2を使用しています。 現在、CollectionViewCellをプログラムで作ろうと思っていますが、やり方がわかりません。 プログラムのみでCollectionViewを作る方法はたくさん見つかるのですが。。。 CollectionViewの場合、ImageならImageのCellを並べたり、LabelならLabel(あるいはImageとLabelの混合)を並べるというように、同じ構成のCellを並べますよね? 私は2つのCellは画像とボタン、3つののCellはラベルとボタンというように異なる構成?Cellを並べたいのです。 そのためにはCollectionViewCellを配置することが必要だと思うのですが、どなたかプログラムで配置する方法を教えてください。 説明が不十分かもしれませんが、宜しくお願いします。 解決 CollectionViewCellを定義してCollectionViewからregisterClassを行えばできます。 回答者: Anonymous

Swiftで、xibで作成したTableViewCellに、xibで作成したViewを追加

投稿者: Anonymous はじめに SwiftでiOSのアプリを開発しています。初心者です。 こういった質問サイトへの投稿経験も浅いため、マナーや通例に反した質問をしてしまっているかもしれません。 もしかすると、お門違いな点もあるかと思いますが、ご容赦願います。 本題 所定のボタンを押すことで、xibで作成したTableViewCell(カスタムクラス : CustomTableViewCell.swift)の中に、xibで作成したView(カスタムクラス : CustomView.swift)を追加(addSubview)しようとしています。 しかし、以下問題が生じています。解決方法を教えてください。 CustomTableViewCell.swift class CustomTableViewCell: UITableViewCell { @IBOutlet weak var viewInCell: UIView! override func awakeFromNib() { super.awakeFromNib() // Initialization code } override func setSelected(selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) // Configure the view for the selected state } } CustomView.swift import UIKit…(Continue Reading)

NSData型への変換について

投稿者: Anonymous func Sample() { let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) let publicKeyPath = paths[0].stringByAppendingPathComponent(“public.pem”) let privateKeyPath = paths[0].stringByAppendingPathComponent(“private.pem”) let keyPair: (publicKey: SecKey?, privateKey: SecKey?) = generateKeyPair() do { let publicData = try NSData(contentsOfFile: publicKeyPath, options: .DataReadingMappedIfSafe) let keyDef = NSUserDefaults.standardUserDefaults() keyDef.setObject(publicData, forKey: “pubKeyData”) var pubKeyString = NSString(data: publicData, encoding: NSUTF8StringEncoding) print(pubKeyString!) let UserId =…(Continue Reading)

配列の要素にtagの値を設定するにはどのようにすべきでしょうか

投稿者: Anonymous プログラミング初心者です。 現在スタンプカメラアプリを作成中です。 CollectionViewと配列に関しまして、質問させて頂きます。 質問内容は下記のとおりです。 質問:配列の要素にtagの値を設定するには、どのようなコーディングをすべきでしょうか。 CollectionViewと配列を用いて画像を20個ならべて、1つの画像をタップしたらCollectionViewが閉じ、画像を指定した座標に設置するという仕様を考えております。 この場合、各画像にtagの値と座標の値をあたえるといいのではと思っております。 配列のコードは下記のとおりです。 override func viewDidLoad() { super.viewDidLoad() for i in 1…20 { imageArray.append(UIImage(named: “(i).png”)!) } } 最初はstoryboardで各画像にtagの値をあたえようと思いましたが、配列を用いているため storyboardでtagの値をあたえることができないと思いました。 storyboardのコレクションビューの様子は下記のとおりです。 20個の画像にtagの値をあたえるにはどのようなコーディングをすべきでしょうか。 また、storyboardで配列使用時20個の画像にtagの値をあたえる方法などありますでしょうか。 お手数をおかけいたしますが、ご教示願います。 解決 テーブルビューやコレクションビューを使用する場合は、通常そのようなtagを必要としない。これらのコレクションビュークラスはセルをNSIndexPathで指し示すので、これをそのままtagの代わりにする。 例えばセルを選択した場合にデリゲートで呼ばれるメソッド、 collectionView(_:didSelectItemAtIndexPath:) においても選択されたセルのindexPathが渡される。特に複雑なことをせず画像ファイルの名前に含む識別番号を0始まりにしていればindexPath.rowの値がその識別番号に対応する。 座標は必要になってから都度動的に計算するとよい。 回答者: Anonymous

XCode7.2.1 のデバッグエリアで変数等の詳細が表示されません。表示させる方法をご存知のかたいらっしゃらないでしょうか?

投稿者: Anonymous 上記画像はとあるアプリをデバック起動させている時のものです。 普通ならこのウィンドウにメモリアドレスやら値やら等が表示されるのですが、 このアプリに限り表示されません。 最初はコンパイルの最適化オプションが原因かと思ったのですが、-O0 で設定されており問題ないようです。 xcodeのバグかなとも思うのですが、解決策をご存知の方いらっしゃらないでしょうか? 解決 こちらで現象が再現できないので、『こうしたら良いのではないか?』と思える対処方法をいくつか提案します。 プロダクトのクリーン Xcodeのメニューから[Product] – [Clean]でクリーンを実行 Build Folder全体の削除 optionを押した状態で、メニューから[Product] – [Clean Build Folder]を実行 プロジェクト全体を作り直す Xcodeを再インストール OSを再インストール デバッグを諦める 回答者: Anonymous

クロージャー内部で生成させたUIImageを、クロージャー外部で使うにはどうしたらいいですか?

投稿者: Anonymous swift及びプログラミング初心者です。 スタンプカメラアプリでカメラロールに保存したUIImageをTwitter投稿させる機能の実装方法で悩んでいます。 撮影ボタンを押すとクロージャー内部で画像を合成させて、最終的にcapturedImage2というUIImageが生成させました。 (カメラロールには画像が保存できています) 以下、クロージャー内部のコードです。 let myAVConnection = myImageOutPut.connectionWithMediaType(AVMediaTypeVideo) myImageOutPut.captureStillImageAsynchronouslyFromConnection(myAVConnection, completionHandler: {(imageDataBuffer, error) -> Void in ・・・・ ・・・・ ・省略・ ・・・・ ・・・・ let capturedImage2: UIImage = UIGraphicsGetImageFromCurrentImageContext() UIImageWriteToSavedPhotosAlbum(capturedImage2, self, nil, nil) UIGraphicsEndImageContext() }) } クロージャ内部で生成したcapturedImage2をtwitterに投稿したいため、Socialフレームワークを用いて以下の様なコードを記述したいと思っています。 @IBAction func postTwitter(sender: AnyObject) { let twVC:SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeTwitter)! let sendImage = rarara twVC.addImage(sendImage) self.presentViewController(twVC, animated: true, completion:…(Continue Reading)

TableViewの軽量化

投稿者: Anonymous 現状 Cellの生成の際に毎回AXRatingViewを呼び出し、 レーティングを表示しているためなのか、 上下にスクロールを繰り返しているとメモリ消費量が多くなり動作が重くなってしまいます。 どうしたいのか できるだけ上下させても動作を軽くしたいのですが、 どのように書き換えればよろしいでしょうか、ご教授願います。 Source import UIKit import AXRatingView class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { func tableView(table: UITableView, numberOfRowsInSection section: Int) -> Int { return 10 } func tableView(table: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = table.dequeueReusableCellWithIdentifier(“TableCell”, forIndexPath: indexPath) let label1 = cell.viewWithTag(1) as! UILabel label1.text =…(Continue Reading)

import UIkitに赤線が引かれている

投稿者: user15219 下記のような状況になっているのですが、これはどのような状況でしょうか? このままimport UIKitしても利用することはできるのですが、心配になり質問させていただきました。 よろしくお願いします。 解決 本家のstackoverflowで同じ内容のQAが見つかりました。 Xcode 7.3: import Module displayed with strikethrough 単なるバグでSwift2.2.1にはその修正が含まれるはずとのことです。(“2016-04-12-a developer snapshot”にもその修正が含まれていると書いてありますが、snapshotビルドは他のバグを含んでいたり一部の機能が未完成であったりします。そもそもsnapshot版でビルドしてもApp Storeには提出できないので、実際のアプリの開発には使わない方が良いでしょう。) 要は「バグなんで修正版が出るまで無視してください」ということですね。 回答者: Anonymous

addTargetでactionがうまく機能しない?

投稿者: Anonymous Code var stepRatingView: AXRatingView = AXRatingView(frame: CGRectZero) stepRatingView.sizeToFit() stepRatingView.stepInterval = 1.0 stepRatingView.addTarget(self, action: Selector(ratingChanged(stepRatingView)), forControlEvents: UIControlEvents.ValueChanged) self.secondView.addSubview(stepRatingView) func ratingChanged(sender: AXRatingView){ print(stepRatingView.value) self.label.text = String(sender.value) } どうしたいのか Amazonなどで見られる「★★★★★」の評価を、スライドで行おうと思い、 コードをSwiftに読み替えています。 Objective-Cのコードではラベルの値が変化するのですが、 Swiftに変換するとラベルの値が変化しません。 うまくaddTargetのactionが接続できていないのでしょうか。 解決 Selectorインスタンスの作り方が間違っています。 Selector(ratingChanged(stepRatingView))と言うのは、Selectorのコンストラクターに、引数としてratingChanged(stepRatingView)と言う メソッドを呼び出した結果 を渡しています。(従ってこの行が実行された時にratingChanged(_:)が実行されているはずです。)ratingChanged(_:)の戻り値はVoidですので、結局Selector()と同じ結果になります。 Selectorインスタンスをコンストラクターで作成する場合には、Selector(“Objective-C形式のメソッド名”)の形を使います。あなたのコードだとこんな感じです。 stepRatingView.addTarget(self, action: Selector(“ratingChanged:”), forControlEvents: .ValueChanged) ただし、Xcode7.3以降をお使いでしたら、(Swift3への準備として)#selector構文を使われた方が良いでしょう。 短い書き方(同じクラス内のメソッドで、オーバーロードされていない場合) stepRatingView.addTarget(self, action: #selector(ratingChanged), forControlEvents: .ValueChanged) 長い書き方(できるだけ曖昧になりにくい書き方) stepRatingView.addTarget(self, action: #selector(ViewController.ratingChanged(_:)),…(Continue Reading)

公開鍵の作成について

投稿者: Anonymous 現在サーバと通信するために公開鍵をアプリ内で作成しようと試みています。 「Security Foundation」を使うことまでわかりました。 実際にサーバに送る内容としては —–BEGIN PUBLIC KEY—– —–END PUBLIC KEY—– このような形の公開鍵をString型で送りたいのですが、どの様に作成すればよいのかわかりません。 ご教授願います。 ※06/23追記 teratail teratailの方にも質問させていただいております。 解決次第両方の質問に解決方法を記載の後クローズさせていただきたいと思っております。 解決 func sample() { let begin: String = “—–BEGIN PUBLIC KEY—–rn” let finish: String = “rn—–END PUBLIC KEY—–” heimdall = Heimdall(publicTag: “publicKey”, privateTag: “privateKey”, keySize: 1024) let publicKeyData = heimdall?.publicKeyDataX509() let base64 = publicKeyData!.base64EncodedStringWithOptions(.Encoding64CharacterLineLength) let publicKeyString =…(Continue Reading)

Objective-CからSwiftへの変換

投稿者: Anonymous Objective-CからSwiftに書き直しているのですがうまく書き直せません。 Objective-C NSMutableDictionary * queryPublicKey = [[NSMutableDictionary alloc] init]; [queryPublicKey setObject:(__bridge id)kSecClassKey forKey:(__bridge id)kSecClass]; [queryPublicKey setObject:publicTag forKey:(__bridge id)kSecAttrApplicationTag]; [queryPublicKey setObject:(__bridge id)kSecAttrKeyTypeRSA forKey:(__bridge id)kSecAttrKeyType]; Swift var queryPublicKey = NSMutableDictionary() queryPublicKey = [kSecClass: kSecClassKey, kSecAttrApplicationTag: keychainIdentifierData, kSecAttrKeyType: kSecAttrKeyTypeRSA] Objective-Cを元に書き直すと 「Value of type ‘CFString’ does not conform to expected dictionary key type ‘NSCopying’」 とエラーを吐きます。 何かしら一手間必要なのでしょうか。 解決…(Continue Reading)

Xcode7 iPhone実機通信エラー NSURLErrorDomain Code=-1004

投稿者: Anonymous iPhone実機でlocalhostのRailsサーバに接続しようとするとエラーが発生します。 iOS9から追加されたATSの機能はAllow Arbitary LoadsをYESに設定しているので切っています。 iPhoneシミュレータでは問題なく接続できています。 しかし、iOS9.1の実機のみならずiOS8.2の実機でもサーバに接続しよとするとエラーが発生してしまいます。 環境 Xcode7.1 iPhone実機iPhone6(iOS9.1)、iPhone5s(iOS8.2) エラーコード NSURLErrorDomain Code=-1004 どなたか本エラーの解決方法ご存知でしたら教えて下さい。 解決 実機からもlocalhostというhost名でアクセスしてませんか? 同じネットワーク内からサーバを立てているPCのipアドレスを指定したらいけると思います。 ターミナルから ifconfig | grep 192 でそれっぽいのは取れると思います。 回答者: Anonymous

xcodeでアップロードファイルの検証の際、エラーが表示される

投稿者: Anonymous プログラミング初心者です。 作成したアプリを初めてappleに申請したいと思っています。 Xcodeからアプリをアップロードする際、調べてはみたものの解決できない問題に直面してしまいました。 Productメニューから「Archive」を選んだ後、アプリのデータをアップロードしても問題ないか検証のために「Validation」をクリックした後にエラーとなりました。 以下、エラー内容及びキャプチャー画像です。 Failed to locate or generate matching signing assets: Xcode attempted to locate or generate matching signing assets and failed to do so because of the following issues. Missing iOS Distribution signing identity for 私の名前 Xcode can request one for you Visit Member Center or Import Developer Profile エラーメッセージを読むと、「Xcodeはその問題を解決できます。」といった内容を…(Continue Reading)

iTunes Connectへの提出ができない (ERROR ITMS-90207: “Invalid Bundle)

投稿者: Anonymous アプリをiTunes Connectへの提出ができなくなってしまいました。(Archiveするところまではできます。) 2週間前に前のバージョンを提出したときは問題なかったのですが。とくにビルド設定を変更した覚えはありません。 症状として、iTunes Connectへの提出プロセスのインジゲーターがほとんど終わりそうなときに、下記のメッセージが表示されます。 本家のStackoverflowで同じような症状に関する質問があり(https://stackoverflow.com/questions/31793854/error-itms-90207-invalid-bundle) Mach-O TypeをDynamicに変更してみたのですが、この変更後はArchiveもできなくなってしまいましたので元に戻しました。 https://stackoverflow.com/questions/33369777/xcode-app-submisson-error-itms-90207-invalid-bundle でサジェストされている2つの解決策についても試してみたのですがダメでした。 今日丸一日この問題でスタックしてしまい、どうにも進めない状況です。 これを試してみては?というアドバイス等あれば、ぜひお願いします。 環境: Xcode 7.1 (Swift)、Deployment Target iOS8.2, Mac OS 10.11.1(El Capitan) 解決 Build settingのenable bitcodeをNOにし、提出時にinclude bitcodeのチェックボックスをオフにしたらエラーが出なくなりました。 他に同じ問題で悩んでいる方がいれば、試してみてください。 回答者: Anonymous

Swift2.0でJSONデータの取得について

投稿者: Anonymous Swiftで、サーバからのデータをPHP経由でJSON取得して、 画面上に反映させたいと考えています。 そのためのデータ取得の際、サーバーから取得したJSONの値を 読み出す部分でエラーが発生していて、困っています。 private func setJsonDataListByType(jsonList : NSArray) -> Array<String> { var dataList = Array<String>() for json in jsonList { let data = json[“name”] as! String dataList.append(data) } return dataList } この、json[“name”]の部分で、下記のようなエラーが発生してしまいました。 Cannot subscript a value of type ‘Element’ (aka ‘AnyObject’) with an index of type ‘String’ 昨日までは特に何のエラーも起きていなかった部分なので、 なぜこんなエラーが発生したのかわかりません。 よろしくお願いします。 解決 まずは、あなたのコードのこの部分をよく確認してください。…(Continue Reading)

初期設定値とその変更値を保存しておくには?

投稿者: Anonymous iOS8以降で、ソフトの初期値を保存しておくにはどうしたらいいでしょうか? 初期値の変更も保存したいのですが・・・ よろしくお願いします。 swift // 「ud」というインスタンスをつくる。 let ud = NSUserDefaults.standardUserDefaults() // キーがidの値をとります。 var udId : AnyObject! = ud.objectForKey(“id”) // これで表示してみたり。 print(udId) // キーidに「taro」という値を格納。(idは任意の文字列でok) ud.setObject(“taro”, forKey: “id”) // キーidの値を削除 ud.removeObjectForKey(“id”) サンプル import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a…(Continue Reading)

navigationBarのbackButtonで戻った時にアクションを起こす方法

投稿者: Anonymous こんにちは 現在私はページを遷移した先でNSTimerを起動するといったことをしているのですが、タイマーの作動中にnavigationBarから戻るとタイマーが作動したままになってしまうのです。 それとは別に設置したボタンなら、unwindSegueに対してprepareで処理できるのですが、このボタンの場合そのようなprepare処理は出来ないのでしょうか? よろしくお願いいたします 解決 navigationBarのbackButtonで戻った時にアクションを起こす方法 という質問の答えであれば、 ViewControllerで戻るボタンのタップを検知するの記事にある方法を試してみてはどうでしょうか。 記事はObjective-CなのでSwiftで一番ラクな方法を書くと下記のようになるかと思います。 override func viewDidDisappear(animated: Bool) { super.viewDidDisappear(animated) if isMovingFromParentViewController() { // [戻る]ボタンを押された事がわかるのでここにTimerを止める処理 } } 回答者: Anonymous

gitでのバージョン管理での「?」

投稿者: Anonymous Gitでバージョン管理を行おうとした際にファイルすべての横のマークが「?」になってしまいました。 バージョン管理する際に必要なファイルと管理しなくても良いファイルを教えて下さい。 CocoaPodsも入れています。 解決 このリポジトリにそれぞれの言語、プロジェクトで作成するべき.gitignoreが一覧されているのでこれを使って必要であれば追加していくのがいいと思います。 また、giboというシェルスクリプトを使うと、コマンドで.gitignoreを生成できるので便利です。 回答者: Anonymous

Swift2におけるenumへの変数の受け渡しについて

投稿者: user15755 Swift2で、以下のようにPitchクラスからenumに変数を渡す(enumに引数を与える?)ようにしたいのですが、どのように書けば良いのでしょうか? もう少し具体的に言うと、View Controllerに置かれたPicker Viewで値が選択される度に、以下のNote.swift内のfrequencyが再計算されるようにしたいと思っています。 以下のコードは実際のコードから一部抜粋したものになります。 // Pitch.swift class Pitch: CustomStringConvertible { var reference: Double // 変数referenceをNote.swiftのenumに渡したい let note: Note let frequency: Double private init(note: Note) { self.note = note self.frequency = note.frequency } // Note.swift enum Note: CustomStringConvertible { case A case B var frequency: Double { // 今まではreferenceの部分が定数だったが変数にしたい return reference / 12.0…(Continue Reading)

Xcode7.0にアップデートしたらWarningが出ます

投稿者: Anonymous Xcodeを7.0にアップデートしたら、次のWarningが出ます。 ld: warning: directory not found for option ‘-F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/Developer/Library/Frameworks’ Warningを消すには、 どうすればいいでしょうか? 解決 古いXCodeで作成したプロジェクトには、FRAMEWORK_SEARCH_PATHSが指定されています。 FRAMEWORK_SEARCH_PATHS = ( “$(SDKROOT)/Developer/Library/Frameworks”, “$(inherited)”, ); この指定はもはや必要がないのですが(XCode6の途中にて仕様変更)、XCode7へ移行する際に引き継がれてしまいます。XCode7には当該のディレクトリがないので警告がでます。 対処法としては、 project.pbxprojを直接エディタで書き換えて当該の記述を消す Targetを作り直す(プロジェクトに複雑な依存性がなければこの方法でもいいと思います) があります。他にももっといい方法があるかもしれません。 project.pbxprojは、YourProject.xcodeprojディレクトリ以下にあります。ただxcodeprojはそのまま開こうとするとXCodeが起動するので、ディレクトリ以下を参照するには以下の手順で開く必要があります。 回答者: Anonymous

Swift Compiler – Custom Flagsを追加する方法がわからず

投稿者: Anonymous Xcode7.3です。 Xcode6,Swiftで APIのURLを分ける – Qiita ios – #ifdef replacement in swift language – Stack Overflow を参考にカスタムフラグをセットしようとしています。 1. pod install前の状態 pod installをする前はこのようになにもありませんでした。 2. pod install後の状態 pod install後の状態詳細 pod install後はこのようにカスタムフラグが自動で付与されていました。 3.BANANAフラグを追加 pod install後の状態でBANANAフラグを追加しようとして、下記のようにすると 4.BANANAフラグ追加後の状態 このように何故か "-D" "COCOAPODS"が2つ表示されます。 正しい追加の仕方を教えて下さい。 解決 2つの目のリンクを見るとBANANAではなく-DBANANAを入れているように見えますのでそれで試して下さい。 2つ重複して出てもCOCOAPODSのdefineは有効のようで問題はないのでそこは無視しよいと思います。 回答者: Anonymous

frameworkを消去したらエラーがでてしまった

投稿者: Anonymous Xcodeのバージョンをあげたらエラーが出てしまいました。 /Users/rei/Library/Developer/Xcode/DerivedData/test-cjirudbxomehmmeehfnapyosogkz/Build/Products/Debug-iphoneos/test.app/Frameworks/Realm.framework/strip-frameworks.sh: No such file or directory 以前入れていたframeworkを消去したのですが、うまく消去できていないようです。 ネットをみてデベロッパーも消去してみたのですが、未だにエラーが出ています・・・ よろしくお願いいたします。 解決 セットアップ手順のうち、最後の「Run Script Phase」に追加したスクリプトが残ったままになっているのが原因だと思います。 iOS、またはwatchOSのプロジェクトで利用する場合は、アプリケーションのターゲットの“Build Phases”タブで新しく“Run Script Phase”を追加し、以下のスクリプトをそのままコピー&ペーストしてください。 bash “${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework/strip-frameworks.sh” この手順はアプリケーションを申請する際のiTunes Connectの不具合を回避するために必要です。 https://realm.io/jp/docs/objc/latest/#section-2 プロジェクト設定の「Build Phases」(下記の画面)を確認して、「Run Script」セクションが残っていたら、右の「x」ボタンで削除して、それから再ビルドしてみてください。 回答者: Anonymous

iOSのApp Extension を利用したキーボードの高さが調整できない。

投稿者: Anonymous iOSのApp Extension を利用したキーボード(カスタムキーボード)で高さを調整しようと思い下記のコードをviewDidAppearとupdateViewConstraintsに追加したのですが高さが変わりません。 解決方法をご存知の方、教えて下さい。 このコードはAppleのドキュメントを参考にしました。 let heightConstraint = NSLayoutConstraint( item: self.view, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 0.0, constant: 400) self.view.addConstraint(heightConstraint) 環境 Xcode7.2 iOS9,8 解決 私は以下の方法で、設定しています。 //前もって高さを設定 pHeight=400 //以下の関数をオーバーライド override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) //以下で高さ変更 let heightConstraint = NSLayoutConstraint(item: view, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier:…(Continue Reading)

型の変換について

投稿者: Anonymous var publicKeyBits = Unmanaged<AnyObject>?() SecItemCopyMatching(queryAttrs, &publicKeyBits) エラー内容 Cannot convert value of type ‘Unmanaged?’ to expected argument type ‘AnyObject?’ どうやったら使えるようになるでしょうか。 追記 var result: Unmanaged<AnyObject>? let pointer: UnsafeMutablePointer<AnyObject?> = UnsafeMutablePointer((result?.toOpaque())!) let status = SecItemCopyMatching(queryAttrs, pointer) こう書き換えることでエラーはなくなりましたが、 Thread1:EXC_BAD_INSTRUCTION (code=EXC_i386_INVOP. subcode0x0) 実行した際にこういうエラーが出ました。 解決 Cの関数に渡す時は、AnyObject?に&をつけると、UnsafeMutablePointer<AnyObject?>として扱ってくれます。 let SecClassValue = kSecClass as NSString let SecReturnRefValue = kSecReturnRef as NSString let…(Continue Reading)

座標の情報を取得するにはどうしたらいいですか?

投稿者: Anonymous すみません、swift及びプログラミング初心者です。 独学でスタンプカメラアプリの作成にチャレンジしています。 現在、ViewController.swiftというファイルとは別にStamp.swiftというファイルを用意しています。 Stamp.swiftには、下記のようなコードを書いています。 import UIKit class Stamp: UIImageView { override func touchesBegan(touches: Set, withEvent event: UIEvent?) { self.superview?.bringSubviewToFront(self) } override func touchesMoved(touches: Set, withEvent event: UIEvent?) { let touch = touches.first! let dx = touch.locationInView(self.superview).x – touch.previousLocationInView(self.superview).x let dy = touch.locationInView(self.superview).y – touch.previousLocationInView(self.superview).y self.center = CGPointMake(self.center.x+dx, self.center.y+dy) } Stamp.swiftでは、画面上で指を動かした時の最終的なx.y座標が取得できていると思います。 ViewController.swiftでは、画像を移動した際の最終的なx.y座標に画像の縮小率をかける などをして、新たなx.y座標を求める必要があります。 Stamp.swiftで取得した、画像を移動した際の最終的なx.y座標をViewController.swiftで…(Continue Reading)