Вопросы с тегами [swift3]

1

голосов
1

ответ
394

Просмотры

Кордова плагина с Cocoapod зависимостью не работает должным образом

Я новичок в реализации плагина Кордова. Я создаю плагин Кордовы, который обеспечивает веб-сокеты поддержку Кордовы App. Для платформы Android все работает нормально. Но для IOS, используя Swift, я застрял. Для прошивки (с помощью Swift), для работы с WebSocket, я использую библиотеку клиента SwiftWebSocket. Я добавил этот стручок зависимость в мой файл plugin.xml, как показано ниже - я создал приложение Cordova и обеспечить Swift поддержки, которую я уже добавил ниже плагина к нему - Cordova плагина добавить Cordova-плагин-надстройка быстротекущей поддержку --save После добавить этот плагин, я добавил свой локальный плагин к нему. Я могу успешно установить мой Podfile и я могу смотреть «SwiftWebSocket» в папке с генерированными стручками. Мое приложение успешно построен. Проблема заключается в том, когда я пытаюсь - импорт SwiftWebSocket я получаю сообщение об ошибке с указанием "
KavitaDev
1

голосов
1

ответ
265

Просмотры

Swift Диаграмма 3 линии Получить индекс

Таким образом, Im делает график, используя красивые Charts API. Я делаю это в СВИФТ 3. Я получил график рабочего, но теперь я пытаюсь получить индекс выбранного значения, я пробовал много вещей, но они не работают. Heres моя последняя попытка на него. FUNC chartValueSelected (_ chartView: ChartViewBase, запись: ChartDataEntry, выделить: Выделение) {если пусть DataSet = chartView.data?.dataSets [highlight.dataSetIndex] {пусть Index: Int = dataSet.entryIndex (запись: запись) печать ( «Selected Индекс: \ (индекс) ")}} IOS GRAPH IMAGE
Daniel Cisneros
1

голосов
1

ответ
575

Просмотры

Как перейти от CoreData к Firebase

Так в настоящее время, я делаю приложение, в котором она позволяет пользователю создавать расходы и хранить их. Каждый счет имеет такие свойства, как дата, название, количество, тип расходов, категория и т.д. В настоящее время я храню все эти на CoreData, который я нахожу легко и управляемый, но я действительно хочу, чтобы перейти к хранению базы данных таким образом, чтобы приложение не занимает все большее количество памяти в телефоне пользователя. У меня есть несколько вопросов, если кто-то может ответить на них. Может firebase базы данных будет использоваться для хранения характеристик объекта, как основные данные могут сортировать как JSON String? Может firebase сохранить что-то и получить его, если вы не подключены к интернету? Какое firebase хранения следует использовать. Когда я иду на их сайте, они имеют несколько баз данных, такие как RealTime, Cloud Storage и т.д. который один был бы лучшим выбором для того, что я пытаюсь сделать. Спасибо за помощь!
Arnav GUPTA
1

голосов
0

ответ
186

Просмотры

Saving Siri INCreateNoteIntent in coredata

I know Siri is setup correctly, hence the image below. But the content is not saving in core data. Siri said it created the note, but it's not showing in coredata. This is what I tried so far, any help would be appreciated. class IntentHandler: INExtension, INCreateNoteIntentHandling { func handle(intent: INCreateNoteIntent, completion: @escaping (INCreateNoteIntentResponse) -> Void) { let context = Context.shared.persistentContainer.viewContext let newNote = Notes(context: context) newNote.textView = intent.content?.description // newNote.textView = intent.title?.spokenPhrase // Save the context do { try context.save() let response = INCreateNoteIntentResponse(code: INCreateNoteIntentResponseCode.success, userActivity: nil) response.createdNote = INNote(title: intent.title!, contents: [intent.content!], groupName: nil, createdDateComponents: nil, modifiedDateComponents: nil, identifier: nil) completion(response) } catch { completion(INCreateNoteIntentResponse(code: INCreateNoteIntentResponseCode.failure, userActivity: nil)) } } func confirm(intent: INCreateNoteIntent, completion: @escaping (INCreateNoteIntentResponse) -> Void) { completion(INCreateNoteIntentResponse(code: INCreateNoteIntentResponseCode.ready, userActivity: nil)) } public func resolveContent(for intent: INCreateNoteIntent, with completion: @escaping (INNoteContentResolutionResult) -> Swift.Void) { let result: INNoteContentResolutionResult if let content = intent.content { result = INNoteContentResolutionResult.success(with: content) } else { result = INNoteContentResolutionResult.needsValue() } completion(result) } } Whenever I tried to save a note
Iam Wayne
1

голосов
0

ответ
441

Просмотры

Simple Http Server Issue on Micropython (ESP8266)

I am sending same post to Simple Http Server(Micropython) installed on ESP8266 and BaseHTTPServer(Python) on PC from my mobile APP (iOS-Swift 4). On PC, i am getting Payload successfully as seen below, However, when i post to ESP8266, i am not seeing any payload in the body and after 3-5 request, i am getting an following error; you can see the code in ESP8266 and request method in Swift below; (if i remove JSON data from my request in Swift, i am not getting following error, only header is successfully posted to ESP8266) ERROR in SWIFT after 3-5 Post Request; 2018-02-06 15:58:48.381801+0300 Chroma[1655:40174] TIC TCP Conn Failed [49:0x60400016c6c0]: 1:61 Err(61) 2018-02-06 15:58:48.385161+0300 Chroma[1655:40174] Task . HTTP load failed (error code: -1004 [1:61]) 2018-02-06 15:58:48.386808+0300 Chroma[1655:40159] Task . finished with error - code: -1004 Could not connect to the server. PC-DEBUG (SUCCEED); ----- Request Start -----> Request path: / Content Length: 20 Request headers: Host: 0.0.0.0:10000 Content-Type: application/x-www-form-urlencoded Connection: keep-alive Accept: application/json User-Agent: Chroma Accept-Language: Content-Length: 20 Accept-Encoding: gzip, deflate Request payload: {"COLOR":[0,255,95]}
Sunrise17
1

голосов
0

ответ
101

Просмотры

UITextView размер высоты для всех устройств с клавиатурой Swift

isUserInteractionEnabled = истина toolBar.sizeToFit () textField.delegate = само textField.inputAccessoryView =} ToolBar, у меня есть один UITextView в раскадровке, и я хочу, чтобы изменить высоту UITextView с Y = 0, так что вписывается в панели инструментов для всех устройств. Я знаю, что UIToolbar это 44 высота. Кто-нибудь знает, как я могу это сделать?
Miloo
1

голосов
0

ответ
76

Просмотры

how to fire local notifications on particular days rather than current weekday

Я работаю над приложением тревоги. При настройке будильника, пользователь выбирает дни, которые становятся все хранящиеся в массиве. Но я не получаю правильный день недели при попытке поместить значение при принятии уведомления. В моем коде я получаю будни в «daysValue» ([0,1,1,1,0,0,0], означает сигнал тревога установлена ​​на понедельник, вторник и среда), но я не получаю ни малейшего понятия, как пройти эти значения в дате запуска. Вот код вар daysValue: [Int] daysValue = AlarmController.shared.days печать (daysValue) для _ в daysValue {для отра в 0 ... countNum {охранник пусть fireDate = alarm.fireDate еще {возвращение} печать (fireDate) пусть дата = fireDate.addingTimeInterval ((1,0 * Двухместный (IND)) * 60.
Ankur sharma
1

голосов
0

ответ
328

Просмотры

Свифт 3 Ошибки: posix_spawn: Ошибка 13 При выполнении команды Process

Я пишу приложение MacOS в Swift 3, которая должна выполняться политика команды / USR / местные / jamf / бен / jamf -id 20. Я постоянно получаю ошибку [9188: 134113] [Общие] Не удалось posix_spawn: ошибка 13 . Я не уверен, что вызывает эту ошибку, я думаю, это что-то делать с не в состоянии выполнить команду как корень? Вот мой код: пусть задачи = Process () task.launchPath = "/ USR / местные / jamf / БИН" task.arguments = [ "Суда jamf политика -id 20"] task.launch () Эта команда отлично работает при использовании непосредственно в терминале. Любые предложения или причины, почему это происходит поможет! Спасибо!
Cameron Wilcox
1

голосов
0

ответ
337

Просмотры

Swift 3 динамическая высота кнопку зависит от длины заголовка в прокрутке stackview

Я хочу создать Scrollview с кнопками радиокнопки / флажком. Я пробовал разные способы работы с Scrollview и stackview, но вот мои вопросы: Проблема: многострочный работает отлично, но кнопка рамка Безразлично `работа Проблема: многострочный заголовок и кнопки динамическая высота не работает; динамическая высота stackview ввиду прокрутки работает отлично вопрос: как я могу сделать кнопки зависят от titleHeight работает с прокручивать stackview частного Func testDynamicBtnHeight () {scrollView.translatesAutoresizingMaskIntoConstraints = ложь mVScrollContainer.addSubview (Scrollview) mVScrollContainer.addConstraints (NSLayoutConstraint.constraints (withVisualFormat: " H: | [Scrollview] |», опции: .alignAllCenterX, показатели: ноль, просмотров: [ "Scrollview": Scrollview])) mVScrollContainer.addConstraints (NSLayoutConstraint.constraints (withVisualFormat: mockRadioButton (название: "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16", BackgroundColor: UIColor.red) вар btn3 = RadioButtonMock.mockRadioButton (название: "BBBBBB Б", BackgroundColor: UIColor.blue) stackView .addArrangedSubview (btn1) stackView.addArrangedSubview (btn2) stackView.addArrangedSubview (btn3), если я == 9 {пусть URL = URL (строка: «https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQacMIFnZ2xZ_ZH7CjdUzzqpsMHwLSiF98lGWVWVHy6Am5qm2mq «) пусть данные = попробовать? Данные (contentsOf: URL), если позволить ImageData = данные {пусть ivImage = UIImageView () ivImage.image = UIImage (данные: ImageData) ivImage.frame = CGRect (х: 0, у 0, ширина: 100, высота: 200 ) stackView.
Patryk Karwat
1

голосов
1

ответ
298

Просмотры

TextField дно с iPhone X в Swift

Я новичок в Swift, и у меня есть проблема с iPhone X. Я после этого учебника: https://www.youtube.com/watch?v=FDay6ocBlnE&index=8&list=PL0dzCUj1L5JEfHqwjBV0XFb9qx9cGXwkq для того, чтобы создать чат приложения. Моя проблема заключается в том, что TextField крепится к нижней части, и это не хорошо для iPhone X. Я действительно не знаю, как я могу изменить это, учитывая, что я больше знаком с раскадровкой и здесь, то collectionViewController полностью программно. Я искал много других учебников, но я не нашел ничего, чтобы помочь. Это мой код: Вид снизу (с текстовым полем): класс ChatInputContainerView: UIView, UITextFieldDelegate {// ... переопределить инициализации (кадр: CGRect) {super.init (рама: рама) BackgroundColor = .red // .. .} требует инициализации (кодер aDecoder: NSCoder)? {FatalError (» UITextFieldDelegate, UICollectionViewDelegateFlowLayout, UIImagePickerControllerDelegate, UINavigationControllerDelegate {пользователь вар: Userm? {? DidSet {navigationItem.title = пользователь .username loadMessages ()}} вар сообщений = [Message] () функ loadMessages () {охранник пусть toId = пользователь .id еще {возвращение} Api.Message.observeUserDiscussion (toId: toId ) {(сообщение) в self.messages.append (сообщение) DispatchQueue.main.async (выполнить: {self.collectionView .reloadData () // прокручивать до последнего индекса пусть indexPath = IndexPath (пункт: self.messages.count - 1, раздел: 0) self.collectionView .scrollToItem (по адресу: indexPath, по адресу: .bottom, анимированные: истина)})}} пусть CellID = "CellID"? 10) inputContainerView.backgroundSendButtonView.roundCorners ([topRight, .bottomRight.], Радиус: 22)} ленивым вар inputContainerView: ChatInputContainerView = {пусть chatInputContainerView = ChatInputContainerView (рама: CGRect (х: 0, у 0, ширина: self.view .frame.width, высота: 54)) chatInputContainerView.chatLogController = самовозврата chatInputContainerView} () функ handleParamsMessage () {Print ( "Титулы") пусть раскадровка: UIStoryboard = UIStoryboard (название: "Main", расслоение: ноль) пусть detailMessage = storyboard.instantiateViewController (withIdentifier: "MessageDetailTableViewController"), как! MessageDetailTableViewController если позволяют пользователю = пользователь {detailMessage.userId = user.id! self.navigationController? .pushViewController (detailMessage, анимированные: истина)}} функ handleUploadTap () {пусть imagePickerController = UIImagePickerController () imagePickerController.allowsEditing = TRUE imagePickerController.delegate = само //imagePickerController.mediaTypes = [kUTTypeImage как строка, kUTTypeMovie, как строка] настоящего (imagePickerController, анимированные: правда, завершение: ноль)} функ imagePickerController (_ подборщика: UIImagePickerController, didFinishPickingMediaWithInfo информация: [String: Любой]) {// если пусть videoUrl = Информация [UIImagePickerControllerMediaURL], как? URL {// // мы выбрали видео // handleVideoSelectedForUrl (videoUrl) //} Else {// // мы выбрали изображение handleImageSelectedForInfo (информация, как [String: AnyObject]) //} отклонять (анимированный: правда, завершение: ноль)} fileprivate функ handleImageSelectedForInfo (_ информация: [String: AnyObject]) {вар selectedImageFromPicker: UIImage? если позволить editedImage = данные [ "UIImagePickerControllerEditedImage"] как? UIImage {selectedImageFromPicker = editedImage} еще если позволить originalImage = информация [ "UIImagePickerControllerOriginalImage"], как? UIImage {selectedImageFromPicker = originalImage}, если позволить selectedImage = selectedImageFromPicker {HelperService.uploadMessagePictureToDatabase (selectedImage, завершение: {(ImageUrl) в self.sendMessageWithImageUrl (ImageUrl, изображение: selectedImage)})}} переопределение вар inputAccessoryView: UIView? {Получить {вернуться inputContainerView}} переопределение уага canBecomeFirstResponder: IndexPath) -> UICollectionViewCell {пусть клетка = collectionView.dequeueReusableCell (withReuseIdentifier: CellID для: indexPath), как! ChatMessageCell cell.chatLogController = само сообщение пусть = сообщения [indexPath.item] cell.textView.text = message.text setupCell (клетка, сообщение: сообщение) // позволяет изменять ширину bubbleView как-то ??? // cell.bubbleWidthAnchor? .Constant = estimateFrameForText (message.text!). Ширина + 25, если пусть текст = message.text {// текстовое сообщение cell.bubbleWidthAnchor? .Constant = estimateFrameForText (текст) .width + 25 клеток. textView.isHidden = ложь} еще если message.imageUrl! = ноль {// падение здесь, если его сообщение об изображении cell.bubbleWidthAnchor? .constant = 200 cell.textView. 1000) позволяют параметры = NSStringDrawingOptions.usesFontLeading.union (.usesLineFragmentOrigin) вернуть NSString (строка: текст) .boundingRect (с: размер, параметры: параметры, атрибуты: [NSAttributedStringKey.font: UIFont.systemFont (ofSize: 15, вес:. среда)], контекст: ноль)} вар containerViewBottomAnchor: NSLayoutConstraint? функ handleSend () {self.inputContainerView.sendButton.isEnabled = ложь Пусть свойства = [ "текст": inputContainerView.inputTextField.text] sendMessageWithPropertiesFIR (свойства, [String: AnyObject])} fileprivate функ sendMessageWithImageUrl (_ ImageUrl: String, изображение : UIImage) {пусть свойства: [Строка: AnyObject] = [ "ImageUrl": ImageUrl, как AnyObject, "ImageWidth": image.size.width как AnyObject, "ImageHeight": image.size. высота в AnyObject] sendMessageWithPropertiesFIR (свойства)} функ sendMessageWithPropertiesFIR (_ свойства: [String: AnyObject]) {печать (свойства [ "текст"]) вар MessageText = "", если свойства [ "текст"] = ноль {MessageText = свойства! [ "текст"], как! Строка} еще {MessageText = "А envoyé ипе фото"} Api.Message.sendMessageWithProperties (toId: пользователь .id !, свойства: свойства) {Api.Message.isUserMuted (идентификатор пользователя: self.user .id !, завершение: {(isMuted), если isMuted {Api.UserToken.observeUserToken (withUser:! self.user .id !, завершение: {(маркер), если пусть маркер = маркер {Api.User.observeCurrentUser (завершение: {(пользователь) в Апи. Notification.sendNotifPush ( "! \ (User.username): \ (MessageText)" маркер: маркер, сообщение)})}})}}) self.emptyTextField ()}} функ textFieldShouldReturn (_ TextField: UITextField) -> Bool {handleSend () возвращает TRUE} уага startingFrame: CGRect? вар blackBackgroundView: UIView? вар startingImageView: UIImageView? // мой пользовательский масштабирование логики функ performZoomInForStartingImageView (_ startingImageView: UIImageView)? {Self.startingImageView = startingImageView self.startingImageView .isHidden = истина self.inputContainerView.inputTextField.resignFirstResponder () startingFrame = startingImageView.superview .convert (startingImageView.frame, чтобы: inputTextField.resignFirstResponder () self.blackBackgroundView? & alpha; = 1 self.inputContainerView.alpha = 0 // математика? // h2 / w1 = h1 / h2 w1 // = h1 / w1 * w1 пусть высота = self.startingFrame .height / self.startingFrame .width * keyWindow.frame.width zoomingImageView.frame = CGRect (х:! 0, у: 0, ширина: keyWindow.frame.width, высота: высота) zoomingImageView.center = keyWindow.center}, завершение: {(завершено) в // ничего не делать})}} Func handleZoomOut (_ tapGesture: UITapGestureRecognizer) {если пусть zoomOutImageView = tapGesture.view {// нужно анимировать обратно к контроллеру zoomOutImageView.layer.cornerRadius = 8 zoomOutImageView. clipsToBounds = истина UIView.animate (withDuration: 0.5, задержка: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, опции: .curveEaseOut, анимации: {self.startingFrame = self.startingImageView .superview .convert ((self.startingImageView?? .frame) !, чтобы: ноль) zoomOutImageView.frame = self.startingFrame self.blackBackgroundView & alpha; = 0 self.inputContainerView.alpha = 1}, завершение:!? {(завершено) в zoomOutImageView.removeFromSuperview () self.startingImageView? .isHidden = ложь})}}} The View: импорт класс UIKit ChatInputContainerView: UIView, UITextFieldDelegate {слабый вар chatLogController: ChatLogController? {{DidSet sendButton.addTarget (chatLogController, действие: #selector (ChatLogController. "PlaneChat"), для: .Normal) sendButton.backgroundColor = UIColor.white sendButton.tintColor = UIColor (красный: 82/255, зеленый: 121/255, синий: 179/255, альфа: 1) sendButton.layer.cornerRadius = 20 = sendButton.clipsToBounds истинного sendButton.translatesAutoresizingMaskIntoConstraints = ложь // что handleSend? addSubview (послать Отправить) addSubview (self.inputTextField) // х, у, ш, ч // enlever апре self.inputTextField.leftAnchor.constraint (equalTo: uploadImageView.rightAnchor, постоянное: 12) .isActive = истина // самостоятельно. inputTextField.leftAnchor.constraint (equalTo: leftAnchor, константа: 8) .isActive = истина //self.inputTextField.centerYAnchor.constraint(equalTo: centerYAnchor) .isActive = истина self.inputTextField.topAnchor.constraint (equalTo: topAnchor, константа: 4). IsEnabled = ложь self.sendButton.alpha = 0,8} функ emptyTextField () {self.inputTextField.text = "" disableButton ()} // FUNC textViewDidChange (_ TextView: UITextView) {// печать (TextView) // если TextView = = self.inputContainerView.inputTextField {// если (self.inputContainerView.inputTextField.text? .isEmpty)! {// disableButton () //} еще {// // sendButton.setTitleColor (typoGreyButton для: .Normal) // self.inputContainerView.sendButton.isEnabled = истина //} //} // //} требуется инициализация ? (кодировщик aDecoder: NSCoder) {FatalError ( "INIT (кодировщик :) не был реализован")}} disableButton ()} // FUNC textViewDidChange (_ TextView: UITextView) {// печатаем (TextView) // если TextView == self.inputContainerView.inputTextField {// если (self.inputContainerView.inputTextField.text .isEmpty?)! {// disableButton () //} еще {// // sendButton.setTitleColor (typoGreyButton для: .Normal) // self.inputContainerView.sendButton.isEnabled = истина //} //} // //} требуется инициализация ? (кодировщик aDecoder: NSCoder) {FatalError ( "INIT (кодировщик :) не был реализован")}} disableButton ()} // FUNC textViewDidChange (_ TextView: UITextView) {// печатаем (TextView) // если TextView == self.inputContainerView.inputTextField {// если (self.inputContainerView.inputTextField.text .isEmpty?)! {// disableButton () //} еще {// // sendButton.setTitleColor (typoGreyButton для: .Normal) // self.inputContainerView.sendButton.isEnabled = истина //} //} // //} требуется инициализация ? (кодировщик aDecoder: NSCoder) {FatalError ( "INIT (кодировщик :) не был реализован")}}
KevinB
1

голосов
1

ответ
414

Просмотры

URLencoding в скор

Пожалуйста, помогите мне сделать то же самое на Swift 3 локон -X POST -d MD = '44586989' -d TermUrl = 'https: //proil.moscow/' --data-UrlEncode 'PaReq = + / eyJNZXJjaGFudE5hbWUiOm51bGwsIkZpcnN0U2l4IjoiNDI3NjM4IiwiTGFzdEZvdXIiOiIxMTQ1IiwiQW1vdW50IjoxMDM0LjAwLCJDdXJyZW5jeUNvZGUiOiJSVUIiLCJEYXRlIjoiMjAxOC0wMy0yNlQwMDowMDowMCswMzowMCIsIkN1c3RvbWVyTmFtZSI6bnVsbCwiQ3VsdHVyZU5hbWUiOiJydS1SVSJ9' https: // demo.cloudpayments.ru/acs Я стараюсь это: запрос вар = URLRequest (URL: URL (строка: acsUrlString)) request.httpMethod = "POST" пусть сессия = URLSession.shared request.setValue ( "применение / х-www- форма-urlencoded», forHTTPHeaderField: "Content-Type") пусть d = строка ( "paReq =" + pareq + "& MD =" + String (Int (TransactionID)) + "& TermUrl = HTTPS: //proil.moscow") .data (с использованием: String.Encoding.ascii, allowLossyConversion: ложь) request.httpBody = d, где d без кодирующие = PaReq = + / eyJNZXJjaGFudE5hbWUiOm51bGwsIkZpcnN0U2l4IjoiNDI3NjM4IiwiTGFzdEZvdXIiOiIxMTQ1IiwiQW1vdW50IjoxMDM0LjAwLCJDdXJyZW5jeUNvZGUiOiJSVUIiLCJEYXRlIjoiMjAxOC0wMy0yNlQwMDowMDowMCswMzowMCIsIkN1c3RvbWVyTmFtZSI6bnVsbCwiQ3VsdHVyZU5hbWUiOiJydS1SVSJ9 & MD = 44586989 & TermUrl = https: //proil.moscow Так что этот код дает мне тот же результат, как результат локон -X POST -d MD = '44586989' -d TermUrl = 'https: //proil.moscow/' -d PaReq = '+ / eyJNZXJjaGFudE5hbWUiOm51bGwsIkZpcnN0U2l4IjoiNDI3NjM4IiwiTGFzdEZvdXIiOiIxMTQ1IiwiQW1vdW50IjoxMDM0LjAwLCJDdXJyZW5jeUNvZGUiOiJSVUIiLCJEYXRlIjoiMjAxOC0wMy0yNlQwMDowMDowMCswMzowMCIsIkN1c3RvbWVyTmFtZSI6bnVsbCwiQ3VsdHVyZU5hbWUiOiJydS1SVSJ9' https://demo.cloudpayments.ru/acs я получаю этот ответ от сервера cloudpayments: "Проверьте символ «+» в параметре PaReq. ",
Mi Ka
1

голосов
1

ответ
73

Просмотры

The audio file on iOS that is being played on Android does not hear me. Only sound that's not good

I'm working on a recorder app on iOS and a friend of mine he's doing it on Android, but when he want's to play my url sound which I send to server and which also works fine for me when I play it .. he hears a lot of noise and not my actual recorder. func setupRecorder() { let myID = userDefaults.value(forKey: "user_id") as! Int let message_token = generateUniqueToken() self.curentFileName = message_token let currentFileName = "\(String(describing: self.curentFileName!))"+"."+"\(myID).m4a" let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] self.soundFileURL = documentsDirectory.appendingPathComponent(currentFileName) print("writing to soundfile url: '\(soundFileURL!)'") if FileManager.default.fileExists(atPath: soundFileURL.absoluteString) { print("soundfile \(soundFileURL.absoluteString) exists") } let recordSettings: [String : Any] = [AVFormatIDKey: kAudioFormatAppleLossless, AVEncoderAudioQualityKey: AVAudioQuality.max.rawValue, AVEncoderBitRateKey: 320000, AVNumberOfChannelsKey: 2, AVSampleRateKey: 44100.0] do { soundRecorder = try AVAudioRecorder.init(url: soundFileURL, settings: recordSettings) soundRecorder.delegate = self soundRecorder.isMeteringEnabled = true soundRecorder.prepareToRecord() } catch { soundRecorder = nil print(error.localizedDescription) } soundRecorder.prepareToRecord() } This is my recorder settings.... What I have from him it s only private static final int SAMPLE_PER_SEC = 8000; private static final int CHANNEL_TYPE = AudioFormat.CHANNEL_IN_MONO; private static final int AUDIO_ENCODING = AudioFormat.ENCODING_PCM_16BIT; private static int BUFFER_ELEMENT_TO_REC = 1024; // want to play 2048 (2K) since 2 bytes we use only 1024 private static int BYTES_PER_ELEMENT = 2; ENCODING_PCM_16BIT He said I m encoding my sound somehow and he s doing a raw record...I have no ideea where i m messing it since it s my first time with AvFoundation
Mohamed Lee
1

голосов
1

ответ
324

Просмотры

Extract values from an model class in Swift

i'm passing my selected data from a list to a model class with there respective things. i have itemName and itemPrice and itemDescription which i pass to my model variables in a class and access that in another class. Now i want to get values out of that model and pass it to service as a parameter. i have some keys in my parameter in which i want to pass these values, the values are dynamic. This is my model class, class Item : NSObject { var totalPrice : String? var numberOfItems : Int = 1 var itemPrice : String? var itemName : String? var itemID : String? var itemId : String? var itemDdescription : String? } class ItemDataSource : NSObject { var items = [Item]() static let sharedInstance = ItemDataSource() private override init() {} } This is how i'm passing values in my model, let item = Item() item.totalPrice = String(result) item.itemPrice = String(result) item.itemDdescription = itemDescription item.itemName = itemName item.itemID = itemID item.itemId = itemId ItemDataSource.sharedInstance.items.append(item) this is my parameter format that are going in my service , "cart": [ [ "childs": [ [ "addon_cat_id": "0", "id": ItemDataSource.sharedInstance.items[0].itemId!, "name": ItemDataSource.sharedInstance.items[0].itemName!, "next_move_id": "", "price": ItemDataSource.sharedInstance.items[0].itemPrice!, "sort_order": "", "type": "string" ] ], "name": ItemDataSource.sharedInstance.items[0].itemName!, "price": ItemDataSource.sharedInstance.items[0].itemPrice!, "productid": ItemDataSource.sharedInstance.items[0].itemId!, "qty": 2, "description": ItemDataSource.sharedInstance.items[0].itemDdescription! ] ], I want to pass all that things in parameter from my model class,and values should go to their respective keys in parameters.I'm confused that how can i pass that in their respective keys and when i pass here with index 0 it passes only 0 index values to the childs in my parameter. How can i pass my whole things that are in my model class?. if there are two items in my model class that it should make two childs in my parameter when i pass my data to it.Chid is an array that is going in parameter. How this can be done?
Awais
1

голосов
1

ответ
299

Просмотры

Swift - Большой титул и SearchBar

Я пытаюсь использовать LargeTitle и SearchBar в моем tableViewController. Я хотел бы иметь белый и не связанные Панель навигации полупрозрачными. Я действительно не найти какой-либо способ сделать это. Мой код, в viewDidLoad (): если #available (IOS 11,0, *) {self.navigationController .navigationBar.prefersLargeTitles = верно?} Self.navigationController .navigationBar.isTranslucent = истина пусть IMG = UIImage (назван: "backgroundNav" ) navigationController .navigationBar.setBackgroundImage (IMG для:? .DEFAULT) searchController.searchBar.searchBarStyle = .minimal self.navigationItem.searchController = searchController self.navigationController .navigationBar.shadowImage = UIImage () проблема здесь состоит в том, что существует пустая строка состояния, когда SearchBar активен: Я хотел бы что-то подобное. Если удалить эти строки, это
KevinB
1

голосов
1

ответ
43

Просмотры

Аргумент метка '(withReadPermission :, от :, обработчика :) не найдена доступных перегрузок

Просто переделал проект Swift 3 и не могу понять следующее сообщение об ошибке. И я не знаю, где ошибка с сообщением: Аргумент метка «(withReadPermission :, от :, обработчика :)» не совпадают все доступные перегрузки FBManager.shared.logIn (withReadPermission: [ «public_profile», «электронной почту»] , с: я, обработчик: {(результат, ошибка), если (ошибка == ноль) {elf.fbLoginSuccess = истина}
Saad Talha
1

голосов
2

ответ
56

Просмотры

Выборка Словаря данных из массива

{ "ValueSet": правда, "ValueList": [{}, { "conId": "003q000000jvwIrAAI"}], "httpCode": 200, "errorSet" ложь "errorList": []} Это ответ, то, что я получаю от сервера. Но на самом деле я новичок быстры, так что я не знаю, как получить значение этого «conId». Я делаю ниже код, чтобы получить Valuelist, но после того, как получить, что я не получаю, как получить, что «conId». Мне нужно отправить, что conId в виде строки в функции обратного вызова. пусть ParseResult: [String: AnyObject] сделать {ParseResult = попробовать JSONSerialization.jsonObject (с: jsonData, опциями: .allowFragments) как! [String: AnyObject] печать ( "\ (ParseResult)")} поймать {печать (» ) Возвращение}, если пусть valueSet = ParseResult [ "valueSet"] ​​{пусть значение = valueSet, как! Bool печать ( "StatusCode: \ (httpResponse.statusCode)"), если пусть Valuelist = ParseResult [ "Valuelist"] {печать (Valuelist), если (httpResponse.statusCode == Constants.KNetworkSuccessCode) && (значение == TRUE) {обратного вызова ( httpResponse.statusCode, значение, "")} еще {обратного вызова (httpResponse.statusCode, значение, "")}}} ) Возвращение}, если пусть valueSet = ParseResult [ "valueSet"] ​​{пусть значение = valueSet, как! Bool печать ( "StatusCode: \ (httpResponse.statusCode)"), если пусть Valuelist = ParseResult [ "Valuelist"] {печать (Valuelist), если (httpResponse.statusCode == Constants.KNetworkSuccessCode) && (значение == TRUE) {обратного вызова ( httpResponse.statusCode, значение, "")} еще {обратного вызова (httpResponse.statusCode, значение, "")}}} ] {Пусть значение = valueSet, как! Bool печать ( "StatusCode: \ (httpResponse.statusCode)"), если пусть Valuelist = ParseResult [ "Valuelist"] {печать (Valuelist), если (httpResponse.statusCode == Constants.KNetworkSuccessCode) && (значение == TRUE) {обратного вызова ( httpResponse.statusCode, значение, "")} еще {обратного вызова (httpResponse.statusCode, значение, "")}}} ] {Пусть значение = valueSet, как! Bool печать ( "StatusCode: \ (httpResponse.statusCode)"), если пусть Valuelist = ParseResult [ "Valuelist"] {печать (Valuelist), если (httpResponse.statusCode == Constants.KNetworkSuccessCode) && (значение == TRUE) {обратного вызова ( httpResponse.statusCode, значение, "")} еще {обратного вызова (httpResponse.statusCode, значение, "")}}}
Aditya Pandey
1

голосов
0

ответ
104

Просмотры

Создать еженедельные оперативные Ios местных уведомлений

Я могу создавать ежедневные уведомления, но не каждую неделю из них с помощью Свифт 3 Иос 10 пользователя Уведомления рамки. Ежедневно работает нормально, но когда я добавляю в параметре .weekday он не посылает мне уведомление. Код: для я в 1 ... 7 {пусть центр = UNUserNotificationCenter.current (); пусть содержание = UNMutableNotificationContent (); content.title = "Title"; content.body = "содержание"; content.sound = UNNotificationSound.default (); вар dateComponents = DateComponents (); dateComponents.weekday = я; // ч от 00 до 11 в формате строки, если (Денночь == "AM") {dateComponents.hour = Int (часы); } Else {dateComponents. час = Int (часы)! + 12; } // 00 мин до 59 в формате строки dateComponents.minute = Int (мин); dateComponents.second = 0; пусть дата = Calendar.current.date (от: dateComponents); // tiriggerDaily работает без будний день для ежедневного, но с добавлением будний день, не делает это каждую неделю пусть triggerDaily = Calendar.current.dateComponents:; ([будний день, .hour, .minute, .second.], С даты!) пусть триггер = UNCalendarNotificationTrigger (dateMatching: triggerDaily, повторяет: истинно); пусть идентификатор = // UUID; Пусть запрос = UNNotificationRequest (идентификатор: идентификатор, содержание: Содержание, триггер: триггер); center.add (запрос, withCompletionHandler: {(Ошибка) в случае пусть ошибка = ошибка {// Произошла ошибка печати ( «Ошибка:»); печать (ошибка); }}); Нужно, чтобы получить код, чтобы выяснить, еженедельно. Используется это в качестве руководства: https://useyourloaf.com/blog/local-notifications-with-ios-10/ Пример того, что я хочу это: пользователь выбирает понедельник, 11:25 вечера, и это понедельник в 11: 23pm. Затем пользователь должен получить уведомление в течение двух минут плюс один на следующей неделе и так далее. Некоторые другие примечания / вопросы: 1. Есть ли у вас ждать неделю для еженедельных уведомлений, чтобы начать? Как и в приведенном выше примере это будет начать на следующей неделе? Только мысль, так как я не могу получить эту работу прямо еще.
cdub
1

голосов
1

ответ
195

Просмотры

Как создать топ навигации, как Reddit App в Swift 3

Вот UI я хочу создать: и то, что полный пользовательский интерфейс выглядит следующим образом: но я хочу, чтобы создать первую верхнюю навигацию. я попытался https://github.com/subinspathilettu/SJSegmentedViewController Который работает, но он показывает навигацию после этого он показывает SegmentView.Could кто-то поможет мне создать этот пользовательский интерфейс это же как экран Reddit приложения после login.I нужно в swift.Thanks в продвижение
anuj tiwari
1

голосов
0

ответ
42

Просмотры

Swift вопрос: установить свойство называется карта

Я модернизации моего Swift проект от 2,3 до 3,0 в XCode 8. Я использую Google Maps API, и они имеют некоторый шаблонный код следующим образом: self.mapView.camera = камера позволяет маркерный = GMSMarker (позиция: camera.target)? Маркер .snippet = «Hello World» marker.map = self.mapView Однако мой XCode 8 Swift компилятор дает мне ошибку на последней строке: Невозможно присвоить имущество; карта является методом, который я не имею никакого контроля над свойствами в классе GMSMarker Google. Так как я могу установить свойство «карта»?
Marc
1

голосов
1

ответ
392

Просмотры

-canOpenURL: Сбой URL: «comgooglemaps: //» - ошибка: «Операция не может быть завершена

Я знаю, что этот вопрос был задан и ответил раньше, но я все еще получаю эту ошибку в консоли отладчика. 2018-07-10 12: 55: 15,173843 + 0300 brevcleaner [34011: 2595874] -canOpenURL: Сбой URL: "comgooglemaps: //" - ошибка: «Операция не может быть завершена (OSStatus ошибка -10814.). "Окружающая среда: Xcode 9.4, Swift 3. Пожалуйста посоветуйте, как я могу исправить мою реализацию. Надеюсь, другие найдут его полезным тоже. Info.plist файл NSLocationWhenInUseUsageDescription Позволите ли вы MYAPP знать свое местоположение? LSApplicationQueriesSchemes тел googlechromes comgooglemaps и код; FUNC openMapsApp (destinationLatitude: String, destinationLongitude: String, cleanerAddressNow: String) {self.locationManager.stopUpdatingLocation () охранник пусть _ = self.cleanerCurrentLatitude еще {печать (»
bibscy
1

голосов
2

ответ
100

Просмотры

Как использовать уведомления и получения доступа к USERINFO?

Я работаю над игрой в жизни проекта Swift. Мне нужно пройти через сетку NotificationCenter к View Controller. Я передаю информацию следующим образом: пусть пс = NotificationCenter.default пусть информация = [ «сетка»: self.grid] nc.post (имя: EngineNoticationName, объект: ноль, USERINFO: информация) Я получаю уведомление в ViewController , Когда я распечатать USERINFO с: пусть сетки = notified.userInfo [ «сетка»] печать ( «! \ (Сетка)») Я получаю (он идет к сетке 10х10, но я считаю, что это достаточно для моего вопроса) : Сетка (_cells: [[Assignment4.Cell (положение: (строка: 0, столбец: 0), состояние: Assignment4.CellState.empty), Assignment4.Cell (положение: (строка: 0, столбец: 1), состояние: Assignment4.CellState.empty), Assignment4.Cell (положение: (строка: 0, столбец: 2), состояние: Assignment4.CellState.empty), Assignment4.Cell (положение: (строка: 0, столбец: 3), состояние: Assignment4.CellState.empty), Assignment4.Cell (положение: (строка: 0, столбец: 4), состояние: Assignment4.CellState.empty), Assignment4.Cell (положение: (строка: 0, столбец: 5), состояние: Assignment4.CellState.empty), Assignment4.Cell (положение: (строка: 0, столбец: 6), состояние: Assignment4.CellState.empty), Как можно получить доступ к состоянию в этом объекте? Благодарю.
F. Pizzuta
1

голосов
0

ответ
41

Просмотры

Как добавить дополнительный параметр (MESSAGEID) для JSQMessagesViewController в Swift 3?

Я использую JSQMessagesViewController, я знаю, что изношен, но все же я хочу использовать, я хочу, чтобы добавить дополнительный параметр с MESSAGEID в Objective-C файл JSQMessage.h & JSQMessage.m, поскольку он имеет значения по умолчанию параметра Я по - (instancetype) initWithSenderId: (NSString *) SenderId senderDisplayName: (дата NSString *) senderDisplayName: (NSDate *) дата текст: (NSString *) текст; Поэтому я хочу, чтобы добавить MESSAGEID, так что я могу использовать его в момент приема и отправки сообщений с его по умолчанию работает отлично
ashwani5389
1

голосов
1

ответ
51

Просмотры

macOS Copy Detection

В принципе, я пытаюсь определить, когда пользователь скопировал что-то в буфер обмена и выполнить действие. В этом случае, я пытаюсь играть звук; Я импортировал звуковой файл в Xcode. Тем не менее, он выходит из строя из-за время цикла, и если я удалить петлю, пока она по-прежнему падает, потому что я перезапустить программу, в конце концов. Как я должен идти об этом, потому что я всегда в конечном итоге в цикле и в конечном итоге сбой программы и не может обнаружить изменения в ChangeCount в NSPasteboard в. Кроме того, звуковой файл не работает, и я не могу показаться, чтобы выяснить, почему. Любая помощь будет удивительным !!!! Дать это только Swift. Edit 1: Я знаю, почему это сбой, я просто не знаю, какой-либо другой способ сделать это. импорт какао класса импорта AVFoundation ViewController: NSViewController {пусть картонный = NSPasteboard. Вообще переопределение функ viewDidLoad () {super.viewDidLoad () пусть звук = URL (fileURLWithPath: Bundle.main.path (forResource: "звук", OfType: "mp3")!) уаг аудиоплеера: AVAudioPlayer? // intializing аудиоплеер делать {попробовать аудиоплеера = AVAudioPlayer (contentsOf: звук)} поймать {Print ( "провал")} пусть lastChangeCount = pasteboard.changeCount // держать цикл, пока что-то не копируется. в то время как (pasteboard.changeCount == lastChangeCount) {} // что-то копируется в буфер обмена, так играть аудио аудиоплеер? .play () // рестарта программы self.viewDidLoad ()} AVAudioPlayer? // intializing аудиоплеер делать {попробовать аудиоплеера = AVAudioPlayer (contentsOf: звук)} поймать {Print ( "провал")} пусть lastChangeCount = pasteboard.changeCount // держать цикл, пока что-то не копируется. в то время как (pasteboard.changeCount == lastChangeCount) {} // что-то копируется в буфер обмена, так играть аудио аудиоплеер? .play () // рестарта программы self.viewDidLoad ()} AVAudioPlayer? // intializing аудиоплеер делать {попробовать аудиоплеера = AVAudioPlayer (contentsOf: звук)} поймать {Print ( "провал")} пусть lastChangeCount = pasteboard.changeCount // держать цикл, пока что-то не копируется. в то время как (pasteboard.changeCount == lastChangeCount) {} // что-то копируется в буфер обмена, так играть аудио аудиоплеер? .play () // рестарта программы self.viewDidLoad ()}
Joe
0

голосов
0

ответ
5

Просмотры

Swift2 ошибки Swift3 - Невозможно присвоить значение типа 'NSDictionary? к типу «» AddressModel

Перемещение приложения из Swift2 в Swift3 и я ударил ошибку, что я был не в состоянии исправить после попытки несколько различных предложений. ленивый адрес вар: AddressModel? = {[Бесхозный самостоятельно] в вар Dict = self.getpayloadDict () вар модель: модель AddressModel = модель возврата ДИКТ} () модель = ДИКТ бросков Невозможно присвоить значение типа 'NSDictionary? к типу 'AddressModel' The AddressModel. , , Класс AddressModel: Deserializable {вар Город: String? вар Государство: String? вар PostalCode: String? требуется инициализация (данные: [Строка: AnyObject]) {Город = данные [ "Город"] как! Строка? Государственные = данные [ «Государство»] как! Строка? PostalCode = данные [ "PostalCode"] как! Строка? }} Любая помощь приветствуется.
clevernickname
1

голосов
1

ответ
146

Просмотры

AppCoordinator Делегат через контроллеры просмотра

Я пытаюсь узнать, как шаблон координатора работает, хотя я получил некоторые проблемы с делегатами от контроллера представления у одного ребенка координатора к другому. Например у меня есть домашний ВХ и я хочу, чтобы перейти к деталям с помощью одной кнопки, но я хотел бы, что управляться с HomeTabBarCoordinator со следующим кодом. FUNC приложение (_ приложение: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: любая]?) -> Bool {// Override пункт для настройки после запуска приложения. Окно = UIWindow () пусть окно tabBarController = UITabBarController () .rootViewController = tabBarController пусть о = HomeTabBarCoordinator () пусть один = deGenericize (о) пусть appCoordinator = TabAppCoordinator (tabBarController: tabBarController, вкладки: [один])? appCoordinator. Делегат = само // создается правильно, когда я добавить точку останова здесь}} расширение HomeTabBarCoordinator: HomeTabBarDelegate {Func goToProfile () {// никогда не выполняется пусть детали = DetailsViewController () rootController.pushViewController (подробности, анимированный: правда)}} класс HomeViewController: UIViewController {слабый вар делегат: HomeTabBarDelegate? пусть кнопку = UIButton () Init () {super.init (nibName: ноль, сверток: ноль)} требуется Init (кодировщик aDecoder: NSCoder)? {FatalError ( "INIT (кодировщик :) не был реализован")} функ setupView () {view.addSubview (кнопка) button.snp.makeConstraints {(марка) в make.center.equalToSuperview ()} view.backgroundColor = .white button.setTitle ( "тест", как:. нормальный) button.setTitleColor (.red для: .Normal) button.addTarget (самость, действие: #selector (didPress) для: .touchDown)} @objc функ didPress () {делегировать .goToProfile () // Делегат равна нулю} переопределение функ viewDidLoad () {super.viewDidLoad () setupView () // есть ли какие-либо дополнительные настройки после загрузки представления. }} Я не знаю, что происходит, и он продолжает давать мне всухую делегат в HomeViewController (см комментарии в коде). Есть идеи? UPDATE, как @purpose упоминалось о HomeTabBarCoordinator быть dealocated от didFinishLaunchingWithOptions я изменил функцию AppDelegate к следующему, но по-прежнему имеет один и тот же вопрос. Как я могу держать сильный реф. чтобы о = HomeTabBarCoordinator () класса AppDelegate: UIResponder, UIApplicationDelegate {вар окно: UIWindow? вар appCoordinator: TabAppCoordinator? пусть tabBarController = UITabBarController () пусть о = HomeTabBarCoordinator () FUNC приложение (_ приложение: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Любые]?) -> Bool {// Override пункт для настройки после запуска приложения. пусть один = deGenericize (о) appCoordinator = TabAppCoordinator окно .rootViewController = окно tabBarController .makeKeyAndVisible ((tabBarController: tabBarController, вкладки:: [один]) appCoordinator .start () Окно = UIWindow (UIScreen.main.bounds кадров)?? ) возвращает истину} TabAppCoordinator? пусть tabBarController = UITabBarController () пусть о = HomeTabBarCoordinator () FUNC приложение (_ приложение: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Любые]?) -> Bool {// Override пункт для настройки после запуска приложения. пусть один = deGenericize (о) appCoordinator = TabAppCoordinator окно .rootViewController = окно tabBarController .makeKeyAndVisible ((tabBarController: tabBarController, вкладки:: [один]) appCoordinator .start () Окно = UIWindow (UIScreen.main.bounds кадров)?? ) возвращает истину} TabAppCoordinator? пусть tabBarController = UITabBarController () пусть о = HomeTabBarCoordinator () FUNC приложение (_ приложение: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Любые]?) -> Bool {// Override пункт для настройки после запуска приложения. пусть один = deGenericize (о) appCoordinator = TabAppCoordinator окно .rootViewController = окно tabBarController .makeKeyAndVisible ((tabBarController: tabBarController, вкладки:: [один]) appCoordinator .start () Окно = UIWindow (UIScreen.main.bounds кадров)?? ) возвращает истину}
Vagelis M
1

голосов
0

ответ
42

Просмотры

Affect of timeStep on PhysicsBodies in SceneKit

В SceneKit, у меня была проблема на столкновении двух динамических сфер, когда один удары в другой с быстрой скоростью, он проходил через внутри него. После того, как я увеличил значение physicsWorld.timeStep от 1/60 до 1/300, столкновение Сфер становится совершенным. Однако в этот момент, если сферы ударов в статическую стену, он начал скользить вдоль стены (как липкие) вместо того, чтобы отраженный от стены. Шар начал терять так много энергии после столкновения к стене. Когда Timestep был 1/60, мяч подпрыгивал на стене, даже в столь низких скоростях, а не прилипание к стене. Какие параметры влияют на physicsBody стены или шара по Timestep? Параметры стены; пусть ballMass: CGFloat = 0,08 physicsWorld.timeStep = 1/300 пусть wallGeometry = SCNPlane (ширина: (Maxx - Minx), высота: wallHeight) wallGeometry.firstMaterial .diffuse?. содержание = UIColor.red wallGeometry.firstMaterial .isDoubleSided = истина пусть shapeWallGeometry = SCNPhysicsShape? (геометрия: wallGeometry, опции: ноль) // су Лик бир ISE yaramiyor пусть wallNode = SCNNode (геометрия: wallGeometry) wallNode.position = SCNVector3 (х : Поплавок (xCenter), у: Поплавок (Miny-cushionHeight / 2), г: Поплавок (cushionHeight) / 2) = wallNode.physicsBody SCNPhysicsBody (тип: .static, форма: shapeWallGeometry) wallNode.physicsBody .restitution = 0,82 wallNode ? .physicsBody .friction = 0,91 wallNode.physicsBody .categoryBitMask = PhysicsCategory.WallType.rawValue | ? PhysicsCategory.GravityType.rawValue wallNode.physicsBody .collisionBitMask = PhysicsCategory.BallOneType.rawValue | PhysicsCategory.BallTwoType.rawValue | PhysicsCategory.BallThreeType.rawValue | PhysicsCategory.GravityType.rawValue wallNode. ? PhysicsBody .contactTestBitMask = PhysicsCategory.BallOneType.rawValue | PhysicsCategory.BallTwoType.rawValue | PhysicsCategory.BallThreeType.rawValue self.rootNode.addChildNode (wallNode)
Sunrise17
1

голосов
0

ответ
39

Просмотры

IOS, как решить «вы уже приобрели этот товар вы хотели бы купить его снова» вопрос с Firebase аналитики

Я реализовал Google AdMob с Firebase интеграции для аналитики. Я хочу, чтобы пользователь заплатить, чтобы удалить объявления. Код для этого работает, но некоторые вопросы. Я получаю сообщение «Вы уже купили этот товар вы бы хотели купить его еще раз», даже если пользователь покупает его в первый раз. Объявления были в состоянии быть удалены в конце концов, но сообщение выше сбивает с толку пользователя. 1) Я читал в Интернете, что проблема может быть решена, если я помещаю этот код SKPaymentQueue.default (). Добавить (Я) до Firebase заявления в AppDelegate FirebaseApp.configure () Но я не могу скомпилировать код, если SKPaymentQueue.default () .add (Я) это класс AppDelegate. 2) Я закомментирована FirebaseApp.configure () после прочтения, что Firebase добавить свой TransactionObserver. Но это не сработало. 3) Я поместил SKPaymentQueue. () по умолчанию. добавить (Я) в классе GameScene в функции sceneDidLoad (), но это не решило проблему. 4) У меня queue.finishTransaction (сделки) в функции FUNC paymentQueue для каждого из состояния SKPaymentTransactionState. Обновление с помощью кода, используемого в приложении песочницы: переопределение функа viewDidLoad () {super.viewDidLoad () // Есть ли какие-либо дополнительные настройки после загрузки представления. . BtnRemoveBannerAds.isEnabled = ложь SKPaymentQueue.default () добавить (Self) getPurchaseInfo ()} @IBAction функ removeBannerAds (_ отправитель: UIButton) {пусть skPayment = SKPayment (продукт: skProduct). SKPaymentQueue.default () добавить (skPayment) } расширение PurchaseViewController: SKPaymentTransactionObserver, SKProductsRequestDelegate {FUNC getPurchaseInfo () {если SKPaymentQueue. canMakePayments () {пусть запрос = SKProductsRequest (productIdentifiers: NSSet (объекты: self.productID), как Set) // не понимают этого? request.delegate = само request.start ()} еще {печать ( "В App покупки не включено")}} функ productsRequest (_ запрос: SKProductsRequest, didReceive ответ: SKProductsResponse) {вар продукты = response.products если products.count = = 0 {печать ( "Товар не найден")} Else {skProduct = продукты [0] печать ( "продукт \ (String (описание: skProduct))") btnRemoveBannerAds.isEnabled = истина} пусть инвалиды = response.invalidProductIdentifiers для продукта в инвалидах {Print ( "Товар не найден \ (продукт)")}} функ paymentQueue (_ очереди: SKPaymentQueue, IsEnabled = False Значение по умолчанию: BREAK}}}} Пожалуйста, посоветуйте, как это реализовать. Спасибо.
Matthew the Coder
1

голосов
0

ответ
36

Просмотры

Как получить PHAsset из видео, если он все еще не сохранен в фотографию?

Как я могу получить видео PHAsset, если у меня есть только URL из него, и он все еще не спасены, но это уже захватили? Дополнительная информация: Мой пользователь записывает видео - я хочу видеть PHAsset этого видео, а затем он сохраняет его. Я не хочу, чтобы принести актив после того, как он был сохранен. Я хочу, чтобы забрать его перед сохранением. Большое спасибо!
Hacker Mane
1

голосов
2

ответ
76

Просмотры

Показать и скрыть модальный при запросе данных из API

У меня есть несколько запросов на мое API, что, в то время как он делает запрос, я хочу, чтобы показать весь экран модального с блесной в середине, который идет возвышаться текущей сценой. Я создал сцену в моей раскадровке и я дал этой сцену контроллер: класс LoadingViewController: UIViewController {переопределение функ viewDidLoad () {super.viewDidLoad () // Есть ли какие-либо дополнительные настройки после загрузки представления. }} В моем другом контроллере, у меня есть следующий: класс SignInViewController: UIViewController {// МАРКА: Свойства @IBOutlet слабого вар submitButton: UIButton! // МАРК: Действия @IBAction FUNC onSubmit (_ Отправитель: Любой) {// Как я могу LoadingViewController как модальный здесь? // В дальнейшем, как я это скрывать? } Переопределение FUNC viewDidLoad () {супер. viewDidLoad ()}} Как я заметил выше, когда пользователь нажимает на кнопку Submit, я хочу показать полноэкранное модальность над этим контроллером. Затем, когда API возвращает данные, я хочу, чтобы скрыть модальность. Как я могу показать и скрыть LoadingViewController как модальный возвышаться в SignInViewController?
user9815123
1

голосов
0

ответ
83

Просмотры

Видеоплеер показано крестиком на кнопку воспроизведения в IOS быстрого AVPlayer?

Я пытаюсь играть видео формировать свой сервер, но когда я пытаюсь сделать это я получаю скрещенный знак на кнопке оплаты. Все другие файлы, такие как .ppt, .keynote и т.д., работают нормально, когда я использую их с моим URL-адрес сервера и использовать WKWebview, чтобы показать их, но .mp4 файлы не работают. Я попробовал 2 метода. 1) Воспроизведение непосредственно с помощью WKWebview. 2) Загрузите файл и сохранить его в виде локального пути, а затем с помощью AVPlayer, чтобы воспроизвести файл. В обоих случаях я получаю же пересекла отметку на кнопку воспроизведения. FUNC playVideo (URL: String) {вар NEWURL: String = URL, если (url.hasPrefix ( "HTTP") || url.hasPrefix ( "HTTPS")) {пусть хост = kGetHostName () NEWURL = хост + NEWURL} делать {пусть видеоданный = NSData (contentsOf: URL (строка:! NEWURL)) пусть тропинки = NSSearchPathForDirectoriesInDomains (.documentDirectory, .userDomainMask, ))} В обоих случаях не в состоянии и получить это. Есть ли способ, что я могу играть видео без изменения моих настроек Plist, как я хочу, чтобы загрузить и играть? 1.Screen Выстрел 2.Screen Выстрел
SriTeja Chilakamarri
1

голосов
2

ответ
47

Просмотры

Математические операции отдельные элементы в 2D массив - Swift

Я пытаюсь выполнять различные математические операции над отдельными элементами 2D массива (testArray) в сочетании с 1D массив (мод). У меня есть следующий для генерации отдельных переменных, но не может понять, как получить эти значения обратно в новый 2D массива. Swift 3.0.2. пусть testArray: [[Double]] = [[0,100,20.1], [1,99,19.2], [3,98,18.2], [5,97,17.3], [7,96,16.4], [9 , 95,15.5]] пусть мод: [Double] = [0,5,7,14,20,22] // Математические операции на двух указанных массивов для вар х в 0 ..
klusmanp
1

голосов
1

ответ
1.2k

Просмотры

Swift 3; Прикрепление необязательной строки с неопциональными строками

Я просто обновлен до Xcode 8.0 Beta 2 и стремительной 3.0, и я получаю сообщение об ошибке в некоторых из моей существующей быстрого 2,3-коды, в отношении дополнительных строк: Binary оператора «+» не может быть применен к операндам типа «String» и ' Строка! Переменный «магазин» является экземпляром -объекта «Магазин» со свойствами addressStreet и addressCity, как определена как вар addressStreet: String! Я получаю сообщение об ошибке на addressLabel.text = ... линия, если магазин! = Ноль {addressLabel.text = магазин! .AddressStreet + String ( "") + магазин! .AddressCity} Я не понимаю! мне кажется, что ни одна из строк не являются обязательными, почему я получаю эту ошибку, и как я могу это исправить?
Wiingaard
1

голосов
2

ответ
284

Просмотры

Двойники Сопоставимые в Swift

Swift 3, Xcode 8β2. Я реализовал класс, который сортирует Сопоставимые данные и попытался проверить его с помощью парного. К сожалению, я получаю сообщение об ошибке «Не удается преобразовать значение типа„[Double]“для указанного типа„[T]“.». Я воспроизвел ошибку в примере кода ниже: класс Foo {пусть данные: [T] = [Double] ()} Могу ли я право предположить, что парный сопоставимость и, если да, то как я устранить ошибку выше? Спасибо.
1

голосов
1

ответ
46

Просмотры

наблюдатели собственности и их поведение

У меня есть класс образца и свойство типа Int, как так: класс StepCounter {вар totalSteps: Int = 0 {willSet (newTotalSteps) {Print ( "о, чтобы установить шаги к \ (newTotalSteps)")} didSet {если totalSteps> OldValue {Print ( "Добавлена ​​\ (totalSteps - OldValue) шаги")}}}} Теперь, когда я делаю экземпляр этого класса и присвоить номер моего вара totalSteps так: пусть anObj = StepCounter () anObj.totalSteps = 2000 Я получаю выход консоли, как и ожидалось: около установить шаги 2000 Добавлено 2000 seteps Но когда я anObj.totalSteps - = 1, я получаю только выход willSet говоря о установить шаги в 1999 году и didSet никогда не будет выполнена. Что происходит и почему я не получаю оператор печати willSet выполняется? Помогает, спасибо.
Dershowitz123
1

голосов
1

ответ
626

Просмотры

Firebase линкер ошибка XCode 8 бета-2

Я пытаюсь интегрировать Firebase в моем проекте IOS без Cocoapods.I выполнили все инструкции, но я получаю сообщение об ошибке компоновщика на XCode8 бета2, как указано ниже: My каркасных зависимостей выглядеть следующим образом: я был бы очень признателен, если кто-то может помочь мне с этот.
Vik Singh
1

голосов
2

ответ
140

Просмотры

Импорт Swift класс создается динамически

Я экспериментировал с куском кода, и мне нужна помощь. Я создаю файл, быстрый файл, содержащий класс и переменные. Я могу успешно создать и прочитать файл. Теперь это возможно для моего использовать этот быстрый файл и получить доступ к его переменному (V, в данном случае)? функ writeF () {пусть файл = "Sample.swift" пусть текст = "импортную Foundation \ п" + "общественного класса Sample {\ п" + "Пусть v: Int = 0 \ п" + "}", если позволить реж = NSSearchPathForDirectoriesInDomains (NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, правда) .first {пусть путь = NSURL (fileURLWithPath: каталог) .URLByAppendingPathComponent (файл) // написание этого {попробовать text.writeToURL (путь, атомарно: ложь,
1

голосов
1

ответ
161

Просмотры

Swift / Xcode / Иос: Использование Firebase для извлечения данных, уже собранных и отображение его в отдельном контроллере представления

Я работаю над приложением, которое позволяет писать и видеть сообщения, вроде как Twitter позволит. В базе данных я использую Firebase и я это получение информации, когда команда завершается. Каждый раз, когда я намерен получить информацию, я делаю, и я могу просмотреть все это в Firebase. Тем не менее, я хотел бы, чтобы затем отображать информацию из моей базы данных в отдельном контроллере представления (используя таблицу данных ячеек, каждую запись в другой ячейке). Я нашел обучающие программы, которые позволили бы информации, полученной в базе данных, чтобы увидеть в этой точке зрения контроллера, однако я не могу найти способ сделать это в другой контроллере представления. Чтобы упростить этот вопрос, я хочу взять данные у меня уже есть и отображать его в другом контроллере зрения, чем тот, в котором было получена информация.
chloecodes
1

голосов
1

ответ
521

Просмотры

Firebase ошибка Не удалось получить по умолчанию маркер Error Domain = com.firbade.iid Code = 6

Недавно я перешел на Xcode 8 и начал использовать Swift 3. Тем не менее, теперь, когда я строю приложение я получаю Не удалось получить по умолчанию маркер Error Domain = com.firebase.iid Код = 6 «(NULL)» ошибка. Это действительно новое и только начали каждое событие, так как я перешел на Xcode 8. Спасибо тем, кто отвечать, Matt
Matt Corley
1

голосов
2

ответ
968

Просмотры

Значение типа «CustomButton» имеет «приземление» ни один член

Я создал пользовательский класс кнопки и переопределить все методы прикасаются. Он отлично работает в стриже 2 и Xcode 7.3.1. Но когда я открываю же приложение в Xcode 8.0, он будет показывать ошибки: Значение типа «CustomButton» не имеет элемента значения «приземление» тип «CustomButton» не имеет никакого элемента значения «touchUpInside» типа «CustomButton» не указало touchDragExit 'Значение типа „CustomButton“ не имеет ни одного члена „“ Значения типа „touchDragEnter CustomButton“ не имеет члена „touchCancel“ Вот мой код: Импорт UIKit @IBDesignable @objc общественного класс CustomButton: UIButton {частного функ addTargets () {// ------ добавить цель ------- self.addTarget (самость, действие: #selector (self.touchDown (_ :)), для: UIControlEvents.TouchDown) self.addTarget (само, действие: # селектор (самостоятельно.
VRAwesome
1

голосов
1

ответ
1.1k

Просмотры

«Использование устаревшего Swift Язык версия» (SWIFT_VERSION) Ошибка при публикации Cocoapods

Я пытаюсь опубликовать эту библиотеку https://github.com/ankurp/Dollar к cocoapods, используя следующие команды Ствол стручок нажать Dollar.podspec --allow-предупреждения --verbose и получаю следующее сообщение об ошибке, которое предотвращает публикацию из библиотека для cocoapods. Там нет ошибок сборки и все тесты проходят на локальном и Travis CI https://travis-ci.org/ankurp/Dollar Я недавно модернизировал проект, чтобы использовать синтаксис Swift 3, а также обновленный проект нам SWIFT_VERSION = 3 https: //github.com/ankurp/Dollar/commit/190ba262eac738efd09408a12a433a68cc51d735, но по-прежнему работает в вопросы, пытаясь опубликовать. Кто-нибудь работать в этом же номере, где они не могут опубликовать Swift cocoapods после обновления до Swift 3 и с помощью Xcode 8.
Encore PTL

Просмотр дополнительных вопросов