Публикации по теме '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 просмотров
schedule
04.05.2023
Сложность понимания связанных типов в расширениях протокола Swift
Я изо всех сил пытаюсь быстро понять протоколы и расширения протоколов.
Я хочу определить серию протоколов, которые могут быть применены к классу, а также набор расширений протокола для обеспечения реализаций по умолчанию. Пример кода:
//...
427 просмотров
schedule
25.07.2023
Невозможно реализовать расширение протокола для соответствующего типа
(не стесняйтесь переименовывать вопрос соответствующим образом)
Я работаю с большим количеством данных BLE, и в целях отладки мне было легко расширить UInt8 с помощью вычисляемой переменной HEX :
extension UInt8 {
var HEX:String {...
586 просмотров
schedule
24.02.2023
Могу ли я получить прямой доступ к статической переменной по умолчанию из типа расширения протокола?
Для развлечения 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 просмотров
schedule
18.05.2024
Как переопределить debugDescription для объектов NSDate в Swift
Я пытаюсь переопределить свойство debugDescription при отображении значения объектов NSDate в отладчике Xcode.
Мой код расширения:
import Foundation
extension NSDate {
public override var debugDescription: String {
return...
1562 просмотров
schedule
18.06.2022
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 просмотров
schedule
20.09.2022
Словарь индексов со строковыми перечислениями в Swift
Я хочу расширить Dictionary ключами String (словарями JSON), чтобы разрешить подписку с любым enum , который имеет тип RawValue String . Конечной целью будет несколько enums , которые можно использовать для индексации словарей JSON.
enum...
3772 просмотров
schedule
19.10.2022
Быстрое расширение класса ТОЛЬКО тогда, когда оно соответствует определенному протоколу.
Привет =) Я только что столкнулся с проблемой проектирования, когда мне нужно (по существу) сделать следующее:
Я хочу добавить немного кода в viewWillAppear: любого подкласса UIViewController , который соответствует протоколу MyProtocol ....
8045 просмотров
schedule
14.12.2022
Доступ к статическому свойству расширения протокола
Я пытаюсь создать протокол, раскрывающий статическое свойство, а затем использовать это статическое свойство в расширении этого протокола, но, похоже, это работает, только если я также определяю это статическое свойство в расширении протокола. В...
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 просмотров
schedule
10.04.2023