Публикации по теме 'swift-extensions'


Swift: почему вам следует избегать использования реализаций по умолчанию в протоколах
Композиция поверх наследования, принцип разделения интерфейса, диспетчеризация методов и модульное тестирование Потому что причины, по которым они не используются, перевешивают выгоды, которые вы получите от этого. Посмотрим на некоторые из них: Композиция по принципам наследования и разделения интерфейсов. Отправка метода для протоколов. Модульное тестирование. Реализация протокола по умолчанию Как упоминалось в документации Swift : «Вы можете использовать расширения..

Вопросы по теме 'swift-extensions'

Обработка сбоя инициализации класса в расширении Swift
Я переписываю категорию Objective C ниже на Swift: @implementation UIImage (Extra) + (UIImage *)validImageNamed:(NSString *)name { UIImage *image = [self imageNamed:name]; NSAssert(image, @"Unable to find image named '%@'", name);...
4332 просмотров
schedule 18.07.2023

Можете ли вы переопределить между расширениями в Swift или нет? (Компилятор кажется сбитым с толку!)
Я работаю над приложением iOS в Swift (большая его часть перенесена из Objective-C). Я использую Core Data и пытаюсь использовать расширения для добавления функциональности к классам, автоматически сгенерированным из моей модели. Одна вещь, которую...
22225 просмотров
schedule 02.02.2023

Неизменяемое значение типа `Int` имеет только изменяющиеся члены с именем Adjust
Я изучаю язык Swift сейчас несколько дней. В документации Apple я видел пример расширения, например: extension Int: ExampleProtocol { var simpleDescription: String { return "The number \(self)" } mutating func adjust() {...
1783 просмотров
schedule 03.04.2023

Ограничения обобщенного типа в Swift
В качестве упражнения я пытаюсь расширить Array в Swift, чтобы добавить функцию-член sum() . Это должно быть типобезопасно, так как я хочу, чтобы вызов sum() компилировался только в том случае, если массив содержит элементы, которые могут быть...
707 просмотров

Сложность понимания связанных типов в расширениях протокола Swift
Я изо всех сил пытаюсь быстро понять протоколы и расширения протоколов. Я хочу определить серию протоколов, которые могут быть применены к классу, а также набор расширений протокола для обеспечения реализаций по умолчанию. Пример кода: //...
427 просмотров
schedule 25.07.2023

Невозможно реализовать расширение протокола для соответствующего типа
(не стесняйтесь переименовывать вопрос соответствующим образом) Я работаю с большим количеством данных BLE, и в целях отладки мне было легко расширить UInt8 с помощью вычисляемой переменной HEX : extension UInt8 { var HEX:String {...
586 просмотров

Могу ли я получить прямой доступ к статической переменной по умолчанию из типа расширения протокола?
Для развлечения Swift я подумал, что создам несколько альтернативных овеществленных API для GCD . Итак, я бросил это на игровой площадке: import Foundation typealias DispatchQueue = dispatch_queue_t extension DispatchQueue { static var...
816 просмотров
schedule 02.02.2023

Self.Type не может быть напрямую преобразован в AnyClass в расширении класса Objective-C в Swift.
Я пытаюсь создать метод ткани для создания UIViewController с правильным именем пера (чтобы исправить проблему с инициализатором по умолчанию iOS8). Для этого я добавил расширение: extension UIViewController { class func create() ->...
11261 просмотров

Как переопределить debugDescription для объектов NSDate в Swift
Я пытаюсь переопределить свойство debugDescription при отображении значения объектов NSDate в отладчике Xcode. Мой код расширения: import Foundation extension NSDate { public override var debugDescription: String { return...
1562 просмотров

Xcode видит только некоторые из подобных расширений вложенного класса, написанные в отдельных файлах
Я пытаюсь сделать свой код как можно более читабельным, сохраняя методы и файлы как можно более короткими и используя вложенные классы для пространства имен. Работает нормально, за исключением действительно странного момента. У меня есть класс,...
156 просмотров
schedule 13.06.2023

Как создать подкласс расширения, заблокированного внутри модуля?
У меня есть библиотека Cocoapod, которая предлагает свою функциональность через extension следующим образом: extension ExposedLibraryClass { class func setup () { ... } } У меня есть шаблонный код, который входит в setup() для каждого...
410 просмотров
schedule 17.07.2023

Swift: невозможно преобразовать значение типа «Я» в ожидаемый тип аргумента «UnsafePointer‹Void›»
Я много работаю с массивами [Uint8] . Но мне часто приходится преобразовывать их в объекты NSData для взаимодействия с платформами iOS, такими как CoreBluetooth . Итак, у меня есть много кода, который может выглядеть примерно так: var...
2317 просмотров
schedule 08.03.2023

Как создать расширение для всех типов, у которых есть .contains?
Я хотел бы создать расширение для всех типов, которые имеют .contains API. Например, я сделал это для строк, но хотел бы расширить его для всех типов: func within(values: [String]) -> Bool { return values.contains(self) } С этим,...
77 просмотров
schedule 27.08.2022

Реализовать протокол через расширение
Я пытаюсь создать протокол, который обертывает процесс использования UIImagePickerController, чтобы сделать его более упорядоченным в моих приложениях. У меня по сути что-то вроде этого: public protocol MediaAccessor :...
463 просмотров
schedule 25.01.2023

Исключение Swift Extension Выполнение было прервано, причина: EXC_BAD_INSTRUCTION (код = EXC_I386_INVOP, субкод = 0x0)
Я попытался сделать расширение для NSDate. То, что я хотел, это флаг, указывающий, нужно ли удалить NSDate позже. Так что я пробовал это на детской площадке //: Playground - noun: a place where people can play import UIKit var str = "Hello,...
778 просмотров

Словарь индексов со строковыми перечислениями в Swift
Я хочу расширить Dictionary ключами String (словарями JSON), чтобы разрешить подписку с любым enum , который имеет тип RawValue String . Конечной целью будет несколько enums , которые можно использовать для индексации словарей JSON. enum...
3772 просмотров

Быстрое расширение класса ТОЛЬКО тогда, когда оно соответствует определенному протоколу.
Привет =) Я только что столкнулся с проблемой проектирования, когда мне нужно (по существу) сделать следующее: Я хочу добавить немного кода в viewWillAppear: любого подкласса UIViewController , который соответствует протоколу MyProtocol ....
8045 просмотров

Доступ к статическому свойству расширения протокола
Я пытаюсь создать протокол, раскрывающий статическое свойство, а затем использовать это статическое свойство в расширении этого протокола, но, похоже, это работает, только если я также определяю это статическое свойство в расширении протокола. В...
1707 просмотров
schedule 29.07.2023

Swift: расширить массив с помощью метода дженериков с пространством имен
Я пишу некоторые методы расширения для быстрого типа Array . Среда Xcode8.3(8E162) и Swift3.1. Я хочу, чтобы окончательный код выглядел как [1, 2, 3].cc.find { $0 < 2 } Здесь cc похож на rx в RxSwift и snp в SnapKit. Для этого я...
220 просмотров
schedule 06.09.2022

Быстрое расширение NSAttributedString недоступно в Objective C
Я создал быстрое расширение для NSAttributedString. import Foundation extension NSAttributedString { public func trimming(_ charSet: NSCharacterSet) -> NSAttributedString { let modifiedString =...
80 просмотров