5

私はこのようなカスタムクラスを持っています -

class Event: NSObject
{
    var eventID: String?
    var name:String?
}

今、私はEventオブジェクトのような配列を持っています

var events = [Event]()

var event1 = Event()
event1.eventID = "1"
event1.name = "Anu"

var event2 = Event()
event2.eventID = "2"
event2.name = "dev"

var event3 = Event()
event3.eventID = "1"
event3.name = "Anu"

events.append(event1)
events.append(event2)
events.append(event3)

配列から一意の eventID を取得するために、このようなコードを作成しましたが、これはうまく機能しています -

func getUniqueIDsFromArrayOfObjects(events:[Event])->NSArray
{
    let arr = events.map { $0.eventID!}
    let uniquearr:NSMutableArray = NSMutableArray()
    for obj in arr
    {
        if !uniquearr.containsObject(obj) {
            uniquearr.addObject(obj)
        }
    }
    return uniquearr;
}

print(getUniqueIDsFromArrayOfObjects(events))

私が使用しているよりも効果的にオブジェクトの配列から一意の ID を取得する別の方法があることを知りたかったのです。を使って何かあるかもしれませんNSPredicate

配列にthousandsはオブジェクトが含まれているため、私のコードはより多くの反復を実行します。

4

3 に答える 3