/core/externals/update-engine/externals/google-toolbox-for-mac/Foundation/GTMNSArray+Merge.h
http://macfuse.googlecode.com/ · C++ Header · 47 lines · 8 code · 7 blank · 32 comment · 0 complexity · 6862f1a5d91f997115d3ba4bf1e1bcfa MD5 · raw file
- //
- // GTMNSArray+Merge.h
- //
- // Copyright 2008 Google Inc.
- //
- // Licensed under the Apache License, Version 2.0 (the "License"); you may not
- // use this file except in compliance with the License. You may obtain a copy
- // of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- // License for the specific language governing permissions and limitations under
- // the License.
- //
- #import <Foundation/Foundation.h>
- // Extension to NSArray to allow merging of arrays.
- //
- @interface NSArray (GTMNSArrayMergingAdditions)
- // Merge our array with |newArray| by sorting each array then merging the
- // two arrays. If |merger| is provided then call that method on any old
- // items that compare as equal to a new item, passing the new item as
- // the only argument. If |merger| is not provided, then insert new items
- // in front of matching old items. If neither array has any items then
- // nil is returned.
- //
- // The signature of the |merger| is:
- // - (id)merge:(id)newItem;
- //
- // Returns a new, sorted array.
- - (NSArray *)gtm_mergeArray:(NSArray *)newArray
- mergeSelector:(SEL)merger;
- // Same as above, only |comparer| is used to sort/compare the objects, just like
- // -[NSArray sortedArrayUsingSelector]. If |comparer| is nil, nil is returned.
- - (NSArray *)gtm_mergeArray:(NSArray *)newArray
- compareSelector:(SEL)comparer
- mergeSelector:(SEL)merger;
- @end