Возможно ли быстрое расширение только для массива с объективными элементами c? - PullRequest
0 голосов
/ 11 октября 2018

Привет, Все, что я хочу добавить расширение Array swift только для Array с объективными элементами c. Возможно ли это?

Например:

extension Array where Element:ObjectiveCClass{

 func unionWithoutDuplicatesPropertiesWithArray(array:[Element] ,key:String) -> [Element]{
    var arrayA:[Element]
    var arrayB:[Element]

    if self.count > array.count {
        arrayA = self;
        arrayB = array;
    } else {
        arrayA = array;
        arrayB = self;
    }

    for object in arrayA
    {
        if object.valueForKey(key)
        {
            //do something
        }
    }
    return arrayA
 }
}

1 Ответ

0 голосов
/ 11 октября 2018

Попробуйте NSObject?

Корневой класс большинства иерархий классов Objective-C, от которого подклассы наследуют базовый интерфейс к системе времени выполнения и способность вести себя как объекты Objective-C.

extension Array where Element: NSObject{

    func unionWithoutDuplicatesPropertiesWithArray(array:[Element] ,key:String) -> [Element]{
        var arrayA:[Element]
        var arrayB:[Element]

        if self.count > array.count {
            arrayA = self;
            arrayB = array;
        } else {
            arrayA = array;
            arrayB = self;
        }

        for object in arrayA
        {
            if object.value(forKey: key) != nil
            {
                //do something
            }
        }
        return arrayA
    }
}

Обратите внимание, что вы не использовали значение arrayB.

...