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


Море расширений Swift !
Прежде чем погрузиться в море, давайте кратко расскажем о Swift Extensions. Расширения добавляют новые функции к существующему классу, структуре, перечислению или типу протокола. Это включает в себя возможность расширения типов, для которых у вас нет доступа к исходному коду (известное как ретроактивное моделирование ). Расширения в Swift могут: Добавьте свойства вычисляемого экземпляра и свойства вычисляемого типа Определение методов экземпляра и методов типов Предоставить..

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

Расширение нижнего индекса массива Swift Range‹T› не преобразуется в Int
Я определяю расширение для массива, чтобы переопределить создание среза: struct S<T> { private var array: [T] = [] private var first = 0 private var len = 0 init(_ array: [T], _ range: Range<Int>? = nil) {...
1060 просмотров
schedule 30.08.2022

Как использовать общие типы для получения объекта того же типа
У меня есть расширение для NSManagedObject , которое должно помочь мне передавать объекты между контекстами: extension NSManagedObject { func transferTo(#context: NSManagedObjectContext) -> NSManagedObject? { return...
1355 просмотров
schedule 16.05.2024

keyPathsForValuesAffecting с помощью NSManagedObject
Бонжур, я хотел бы перевести объективное упражнение из книги Аарона на свифт, но не могу найти решение. Код цели: @dynamic firstName; @dynamic lastName; @dynamic department; + (NSSet *)keyPathsForValuesAffectingFullName { return [NSSet...
3300 просмотров
schedule 27.06.2023

Расширения Swift 1.2
Я обновил XCode до 6.3/Swift 1.2 и вижу ошибки с расширениями. Ниже мое расширение для UINavigationItem для скрытия текста backButton. extension UINavigationItem { func backBarButtonItem() -> UIBarButtonItem { return...
678 просмотров
schedule 06.11.2022

Swift, где расширения массива
Что касается Swift 2.0, кажется, мы можем приблизиться к расширениям универсальных типов, применимых к предикативным ситуациям. Хотя мы все еще не можем сделать это: protocol Idable { var id : String { get } } extension Array where T :...
38208 просмотров
schedule 03.02.2023

Расширьте типы массивов, используя предложение where в Swift
Я хотел бы использовать платформу Accelerate для расширения [Float] и [Double], но каждый из них требует другой реализации. Я попробовал очевидное: extension Array<Float> { } и получить эту ошибку: «Ограниченное расширение...
31833 просмотров
schedule 26.06.2022

Сложное расширение Swift
Я хочу создать расширение для класса String в Swift, которое позволит вам получить подстроку с помощью оператора индекса, как в Python. Это можно сделать с помощью класса Range следующим образом. extension String { subscript (range:...
187 просмотров
schedule 13.06.2023

Доступ к свойствам Obj-C в файле расширения Swift
Я начал писать расширения Swift для своих контроллеров представления. Итак, у меня сейчас есть три файла: Мой заголовочный файл, ViewController.h : @interface MyViewController : UIViewController @end Мой файл реализации Obj-C,...
7354 просмотров
schedule 22.04.2023

Попытка расширить IntegerType (и FloatingPointType); Почему нельзя преобразовать все типы Int в NSTimeInterval
(Наверное, название нужно получше...) Я хотел бы иметь набор средств доступа, которые я мог бы использовать в коде для быстрого выражения длительности времени. Например: 42.seconds 3.14.minutes 0.5.hours 13.days Этот пост показывает,...
1198 просмотров

Коллизии имен для методов расширения из разных фреймворков
В качестве теста я создал два фреймворка. Обе структуры содержат это расширение: public extension UIDevice { var extraInfo: UIDeviceExtraInfo { return UIDeviceExtraInfo() } } public class UIDeviceExtraInfo { public var prop:...
3223 просмотров
schedule 18.08.2022

Контроль доступа для расширений Swift
Язык программирования Swift говорит об управлении доступом для расширения: Вы можете расширить класс, структуру или перечисление в любом контексте доступа, в котором доступен класс, структура или перечисление. Любые члены типа, добавленные в...
7576 просмотров
schedule 08.09.2023

Объекты расширения массива Swift 2.1AtIndexes
Я пытаюсь расширить массив, чтобы возвращать только объекты с определенными индексами. Функция карты показалась мне здесь лучшим выбором. extension Array { func objectsAtIndexes(indexes: [Int]) -> [Element?]? { let elements:...
495 просмотров
schedule 28.08.2022

Как получить доступ к статическим переменным в методах, используя расширения протокола Swift, подобные «абстрактному классу»
Я пытался создать абстрактное поведение, подобное суперклассу, в Swift, используя протоколы и расширения, предложенные здесь: Абстрактные классы на языке Swift Но я не могу понять, как писать методы, использующие статические (классовые) переменные....
769 просмотров

Реализация метода протокола по умолчанию с расширением Swift
Я пытаюсь написать поведение по умолчанию для метода делегата, используя расширение Swift, как показано ниже, но оно никогда не вызывается. Кто-нибудь знает, почему или как это сделать правильно? extension NSURLSessionDelegate { public func...
1105 просмотров

Понимание использования расширения Swift в дизайне вашего API
API Alamofire имеет такие расширения, как extension Request в ResponseSerialization.swift. Почему при разработке Swift API вы должны использовать этот подход, а не просто добавлять эти методы в класс Request (Request.swift)? Я понимаю...
276 просмотров
schedule 30.08.2022

Доступ к вычисляемому свойству протокола в расширении протокола
Предположим, у меня есть протокол вроде protocol TypedString : CustomStringConvertible, Equatable, Hashable { } func == <S : TypedString, T : TypedString> (lhs : T, rhs : S) -> Bool { return lhs.description == rhs.description }...
1617 просмотров
schedule 30.11.2022

Как использовать протокол @objc одновременно с необязательными и расширениями?
Этот код не компилируется и может показаться глупым, но я объясню, почему это так важно! @objc protocol p { optional func f1() func f2() } extension p { func f1() { } func f2() { } } class foo: p { } Компилятор говорит...
8143 просмотров

Как сделать расширение для нескольких классов Swift
У меня есть расширение: extension UILabel { func animateHidden(flag: Bool) { self.hidden = flag } } Мне нужно сделать такой же для UIImageView , но я не хочу копировать весь код. Можно ли сделать расширение для нескольких...
15957 просмотров
schedule 30.05.2023

Как расширить тип, который принимает общие элементы массива?
У меня есть тип, который я пытаюсь специально расширить: AnyObserver<[MyModel]> . Было бы легко расширить, если бы я не передавал массив как Element , что я могу сделать примерно так: extension AnyObserver where Element: MyModel {...}...
1356 просмотров
schedule 14.12.2022

Метод не - '@ objc' не удовлетворяет необязательному требованию протокола '@objc' с условным расширением
Я пытаюсь создать реализацию MKMapViewDelegate по умолчанию, используя условное расширение следующим образом: extension MKMapViewDelegate where Self: NSObject { func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) ->...
3403 просмотров
schedule 22.06.2023