Ответы пользователя по тегу Swift
  • Как сделать так, чтобы функция возвращала значения типа Array?

    briahas
    @briahas
    ObjC, Swift, Python
    Либо сделать так как советует doublench21 :
    private _data: [[String: String]]? {
      didSet {
       /* Тут я получил данные и что-то с ними уже делаю. Этот код выполнится так скоро,
     как запрос запишет ответ в данную переменную */
     }
    }


    Либо, переписать функцию чтоб был completion блок:
    func request(uri: String, params: Dictionary<String, Any>, completion: ( Array<Dictionary<String, String>>)->())  {
            Alamofire.request(self.url + uri, method: .get, parameters: params as! Parameters).responseJSON { response in
                if let json: [AnyObject] = response.result.value as? [AnyObject] {
                    var items = [Dictionary<String, String>]()
                    let data = JSON(json)
                    for item in data {
                        items.append(["id": item.1["id"].stringValue, "title": item.1["title"].stringValue])
                    }
                    completion(items)
                }
            }
        }

    , в последнем случае, применение функции будет следующим:
    classElement.request(uri: myPath, params: requestParams) { items in
        print(items)
    }
    Ответ написан
    Комментировать
  • Правильная архитектура/шаблон model для swift-приложения?

    briahas
    @briahas
    ObjC, Swift, Python
    Делаешь БД-контроллер - который: хранит все данные, выдает данные по запросу, сохраняет данные по запросу
    Делаешь Фабрику - которая создает все контроллеры (и БД тоже)

    При создании контроллера, которому нужно общение с БД, Фабрика, после инициализации нужного контроллера, сетапит ему БД-контроллер, и себя - если контроллер тоже должен будет что-то создать.
    Ответ написан
    Комментировать
  • Как из колбек функции передать значения в swift 3?

    briahas
    @briahas
    ObjC, Swift, Python
    Решать задачу переводом переменной в глобальный скоуп - это плохой вариант, в плане архитектуры приложения. Если вам архитектура не важна - тогда ¯\_(ツ)_/¯
    Ответ написан
    Комментировать
  • Как изменять UIPageViewController из другого ViewController(родительского)?

    briahas
    @briahas
    ObjC, Swift, Python
    Немного подсказки: а как вообще должно переключаться то, что вы хотите переключить в UIPageViewControllerler? Очевидно - обратиться к некоему методу, или проперти, UIPageViewController-а.
    Так вот, именно так и надо преключить, то что вы хотите переключить - из ViewController обратиться к экземпляру класса UIPageViewController и - переключить.
    Ответ написан
    Комментировать
  • Как из одномерного массива сделать многомерный?

    briahas
    @briahas
    ObjC, Swift, Python
    Интернеты (стаковерфлоу) нашли подобное решение:
    extension Array {
        func chunked(by chunkSize: Int) -> [[Element]] {
            return stride(from: 0, to: self.count, by: chunkSize).map {
                Array(self[$0..<Swift.min($0 + chunkSize, self.count)])
            }
        }
    }
    Ответ написан
    Комментировать
  • Как в section tableView добавить текст по колонкам?

    briahas
    @briahas
    ObjC, Swift, Python
    Ну, сделайте section с текстами над каждым столбцом. Не совсем понятно - а в чем затык?
    Ответ написан
    Комментировать
  • Как определить данные для ячейки таблицы (NSTableView), в которой произошло нажатие кнопки?

    briahas
    @briahas
    ObjC, Swift, Python
    Забудьте про теги(!!!) ни когда не используйте их, избегайте как проказы (...собственно этим они и являются).

    Если вы в ячейку вставляете вьюху после создания ячейки, то сетапте вьюхе эту ячейку в какуюто пропертю по слабой ссылке делегатом или вроде того. И по нажатию берите ячейку из проперти. А лучше не саму ячейку, а те данные ячейки которые вам нужны.

    И, честно говоря, задача описана скомкано. По хорошему она не понятна и я ответил на то что я понял из вашего описания.
    Ответ написан
    Комментировать
  • Как получить более 50 видео при помощи youtube api v3 используя язык swift?

    briahas
    @briahas
    ObjC, Swift, Python
    Я делал аплоад видео через гугл фреймворки
    pod 'GoogleAPIClientForREST'
        pod 'GoogleAPIClientForREST/YouTube'
        pod 'Google/SignIn'


    Сделай по аналогии только получение видео.
    в Бриджинг файле ОБЯЗАТЕЛЬНО прописать
    #import <Google/SignIn.h>
    #import <GTMSessionFetcher/GTMSessionFetcher.h>
    #import <GTMSessionFetcher/GTMSessionFetcherService.h>


    Разбивай и помещай код там где надо тебе
    let service =  GTLRYouTubeService()
    .....
            var configureError: NSError?
            GGLContext.sharedInstance().configureWithError(&configureError)
            assert(configureError == nil, "Error configuring Google services: \(configureError)")
    
            GIDSignIn.sharedInstance().delegate = self
            GIDSignIn.sharedInstance().uiDelegate = self
            GIDSignIn.sharedInstance().scopes = [kGTLRAuthScopeYouTube, kGTLRAuthScopeYouTubeUpload]
            GIDSignIn.sharedInstance().shouldFetchBasicProfile = true
            GIDSignIn.sharedInstance().signIn()
    
            service.authorizer = GIDSignIn.sharedInstance().currentUser.authentication.fetcherAuthorizer()
    let status = GTLRYouTube_VideoStatus()
            status.privacyStatus = kGTLRYouTube_VideoStatus_PrivacyStatus_Public
            
            let snippet = GTLRYouTube_VideoSnippet()
            snippet.title = "Lalala"
            snippet.descriptionProperty = "TestUpload"
            snippet.tags = "test,video,upload".components(separatedBy: ",")
            
            let youtubeVideo = GTLRYouTube_Video()
            youtubeVideo.snippet = snippet
            youtubeVideo.status = status
            
            let uploadParams = GTLRUploadParameters(fileURL: url, mimeType: "video/mp4")
            
            let uploadQuery = GTLRYouTubeQuery_VideosInsert.query(withObject: youtubeVideo, part: "snippet,status", uploadParameters: uploadParams)
            
            uploadQuery.executionParameters.uploadProgressBlock = {(progressTicket, totalBytesUploaded, totalBytesExpectedToUpload) in
                print("Uploaded", totalBytesUploaded)
            }
    
            service.executeQuery(uploadQuery) { (ticket, obj, error) in
                print(ticket)
                print(obj)
                print(error)
            }
    Ответ написан
    Комментировать
  • Как обратиться к элементам в ячейках?

    briahas
    @briahas
    ObjC, Swift, Python
    У меня ответ будет другой.

    Работая с таблицей (коллекшнвьюхой) вы всегда устанавливаете им Датасорс. Это объект который снабжает таблицу данными. А, данные, это и есть: текст на ячейке, картинка, хзчтоеще. И, обычно, гдето, (в датасорсе), хранится массив объектов которые держат в себе ТЕКУЩИЕ тексты, картинки, хзчтоеще для отображения в таблице.

    И, если вы когда нибудь последуете описанной мною выше логике то, вы должны ВНАЧАЛЕ изменить пропертю у соответствующего объекта хранящегося в массиве (обычно вычисляется по индексу, т.е. если надо чтобы в первой ячейке изменился текст - берете первый объект из массива), а ПОТОМ делать reloadData

    И в cellForRowAt indexPath у вас бeдет что-то типа:
    cell.label.text = models[indexPath.row].title
    Ответ написан
    Комментировать
  • Как сделать шаблон для Xcode, который будет добавлять новый класс и интегрировать его в уже существующие?

    briahas
    @briahas
    ObjC, Swift, Python
    Коротко - ни как.

    Я, для себя, сделал приложуху на мак которая генерит/парсит/добавляет что надо - куда надо. ¯\_(ツ)_/¯
    Ответ написан
    Комментировать
  • Почему не отображается CollectionVIew внутри ScrollView?

    briahas
    @briahas
    ObjC, Swift, Python
    Выведи координаты и фрейм коллекшн вьюхи - чтоб знать где она и какого размера.

    От полученных данных и "пляши" дальше: либо размер = 0 (констрейнты? размер контента?..); либо она за пределами видимости (констрейнты)
    Ответ написан
  • Как изменить цвет NSTableRowView?

    briahas
    @briahas
    ObjC, Swift, Python
    можно использовать:
    func tableViewSelectionDidChange(_ notification: Notification)
    Ответ написан
    Комментировать
  • Почему возникает ошибка Failed to create provisioning profile(и почему она пропала)?

    briahas
    @briahas
    ObjC, Swift, Python
    Но вопрос в том - почему она обратно не появилась когда я выбрал не свой iPhone, а симулятор XCode?
    Потому что для запуска на симуляторе не нужны провижены.
    Ответ написан
    Комментировать
  • Как добавит action на UITextView?

    briahas
    @briahas
    ObjC, Swift, Python
    Если вопрос в том чтобы отловить момент получения фокуса элементом, то есть метод делегата textFieldDidBeginEditing, вот когда он вызывается тогда и фокус на элементе.
    Ответ написан
    Комментировать
  • Может ли view controller быть без связи?

    briahas
    @briahas
    ObjC, Swift, Python
    В начале вопрос по вьюконтроллеры, в окончании вопрос про вьюхи.

    Если предположить, что вопросы все про вьюконтроллеры, то ответ - можно.
    Можно все.

    Я вообще все вьюконтроллеры делаю в отдельных сторибоардах и все связи между ними у меня програмные. И начальный экран задается програмно.

    Удобно, не надо переключаться между сториком и кодом чтобы посмотреть "что там #@$ вызывается следующим?"
    Ответ написан
    Комментировать
  • Какой выбрать язык программирования для разработки игр под IOS и Andoid?

    briahas
    @briahas
    ObjC, Swift, Python
    Unity же
    Ответ написан
    Комментировать
  • Как правильно передать значения в массив из другого VC?

    briahas
    @briahas
    ObjC, Swift, Python
    Могу только предположить, что у тебя постоянно создается либо масив, либо вьюконтроллер.
    Тут надо только дебажить код.
    Поставь брекпоинт на строчке ViewController2.list.append(per) и проверь значение list до исполнения этой строчки и после.
    Если на этом этапе все норм - иди назад по логике и ищи кто удаляет (создает заново массив) добавленные ранее значения.
    Ответ написан
    Комментировать
  • Какой паттерн лучше для разработки на Swift?

    briahas
    @briahas
    ObjC, Swift, Python
    До этого использовал MVP(resenter). В последнее время перехожу на Координаторы.
    Ответ написан
    Комментировать
  • Как начать цикл for с заданного индекса в Swift 4?

    briahas
    @briahas
    ObjC, Swift, Python
    Создать массив содержащий элементы начиная с элемента в позиции endPos и затем forin
    Ответ написан
    Комментировать
  • Как можно добавит обозреватель, чтобы он отслеживал появления новых ячеек в tableview и присылал уведомление?

    briahas
    @briahas
    ObjC, Swift, Python
    Есть простой метод делегата:

    tableView: willDisplayCell: forRowAtIndexPath:
    Ответ написан
    Комментировать