From 87b34d6b33a22e8e340c3cae53ff3e8ef74fd0a8 Mon Sep 17 00:00:00 2001 From: Stephen Kockentiedt Date: Tue, 3 May 2016 17:44:32 +0200 Subject: [PATCH] Allow BloodMagic to be used as a framework --- .../Core/Private/Collectors/BMClassCollector.mm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/BloodMagic/Sources/Modules/Core/Private/Collectors/BMClassCollector.mm b/BloodMagic/Sources/Modules/Core/Private/Collectors/BMClassCollector.mm index 543935c..9868e32 100644 --- a/BloodMagic/Sources/Modules/Core/Private/Collectors/BMClassCollector.mm +++ b/BloodMagic/Sources/Modules/Core/Private/Collectors/BMClassCollector.mm @@ -42,13 +42,14 @@ - (void)collectClasses { #ifdef __IPHONE_OS_VERSION_MIN_REQUIRED uint classesCount; - const char *imageName = class_getImageName(object_getClass(self)); - const char **classNames = objc_copyClassNamesForImage(imageName, &classesCount); + Class *classes = objc_copyClassList(&classesCount); for (uint index = 0; index < classesCount; index++) { - Class nextClass = objc_getClass(classNames[index]); - _cachedClasses.push_back(nextClass); + Class nextClass = classes[index]; + if (class_conformsToProtocol(nextClass, @protocol(NSObject))) { + _cachedClasses.push_back(nextClass); + } } - free(classNames); + free(classes); #else Class parentClass = [NSObject class]; int numClasses = objc_getClassList(NULL, 0);