From 5276ff21e3ed70bb2c65099fff053e7eac49a936 Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Mon, 28 Feb 2011 21:21:58 -0800 Subject: Move WebScriptObject (NSFastEnumeration) to (Cyte). --- CyteKit/WebScriptObject-Cyte.h | 1 + CyteKit/WebScriptObject-Cyte.mm | 13 +++++++++++++ 2 files changed, 14 insertions(+) (limited to 'CyteKit') diff --git a/CyteKit/WebScriptObject-Cyte.h b/CyteKit/WebScriptObject-Cyte.h index 6da0d8c..d071ea6 100644 --- a/CyteKit/WebScriptObject-Cyte.h +++ b/CyteKit/WebScriptObject-Cyte.h @@ -44,6 +44,7 @@ @interface WebScriptObject (Cyte) - (NSUInteger) count; +- (NSUInteger) countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id *)objects count:(NSUInteger)count; - (id) objectAtIndex:(unsigned)index; @end diff --git a/CyteKit/WebScriptObject-Cyte.mm b/CyteKit/WebScriptObject-Cyte.mm index 9df6f85..36b02dd 100644 --- a/CyteKit/WebScriptObject-Cyte.mm +++ b/CyteKit/WebScriptObject-Cyte.mm @@ -53,4 +53,17 @@ return [self webScriptValueAtIndex:index]; } +- (NSUInteger) countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id *)objects count:(NSUInteger)count { + size_t length([self count] - state->state); + if (length <= 0) + return 0; + else if (length > count) + length = count; + for (size_t i(0); i != length; ++i) + objects[i] = [self objectAtIndex:state->state++]; + state->itemsPtr = objects; + state->mutationsPtr = (unsigned long *) self; + return length; +} + @end -- cgit v1.2.3