获取Xcode工程所有的类名

有的时候在需求中需要获取工程中所有的类名。例如在获取工程中继承某个类的列表。

核心代码如下:

    unsigned int count = 0;
    const char **classes = nil;
    Dl_info info;
    dladdr(&_mh_execute_header, &info);
    NSLog(@"%s", info.dli_fname);
    /*
     info.dli_fame 是工程编译时工程的路径
     objc_copyClassNamesForImage 返回所有类的名称
     */
    classes = objc_copyClassNamesForImage(info.dli_fname, &count);
    for (int index = 0; index < count; ++index) {
        NSString *className = [NSString stringWithCString:classes[index] encoding:NSUTF8StringEncoding];
        NSLog(@"className = %@", className);
    }

若有疑问请加本人QQ:610774281 微信:stephenli225。 一起探讨一起进步。。。。

时间: 2024-10-04 18:26:26

获取Xcode工程所有的类名的相关文章

xcode工程命令行生成ipa安装包

主要使用两个命令 xcodebuild:将xcode工程打包成.app文件 xcrun:将app打包成.ipa文件 下面是写好的ant脚本: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <project default="release" name="PackageForIOS" basedir="."> 3 <property nam

Cocos Code IDE里xcode工程lua脚本更新

lua脚本修改后xcode需要clean重新编译才能更新,这个是xcode里的老毛病了,网上有一些脚本但不是针对Cocos Code IDE的工程目录的,这里列出 cocos2dx版本3.1 首先在 Xcode 里选中工程,右侧会显示工程的设置界面. 从设置界面选择 Build Phases 标签,然后点击右下角的 Add Build Phases 按钮,并选择"Add Run Script". 在新出现的 Run Script 栏中输入以下内容: _TARGET_BUILD_CONT

「Unity」与iOS、Android平台的整合:1、导出的Xcode工程

本文属于「Unity与iOS.Android平台的整合」系列文章之一. 本文主要讲解Unity导出的Xcode工程的目录结构. 我所用软件的版本: Unity 5.3.5f1 Xcode 7.3 前导步骤 第一步,创建一个新的工程 Build_to_iOS_Android 第二步,创建一个新文件 CSharpToCPP.cs using UnityEngine; public class CSharpToCPP { public void Func(int num) { if (num < 1)

细聊 Cocoapods 与 Xcode 工程配置

前言 文章比较长,所以在文章的开头我打算简单介绍一下这篇文章将要讲述的内容,读者可以选择通篇细度,也可以直接找到自己感兴趣的部分. 既然是谈 Cocoapods,那首先要搞明白它出现的背景.有经验的开发者都知道 Cocoapods 在实际使用中,经常遇到各种问题,存在一定的使用成本,因此衡量 Cocoapods 的成本和收益就显得很关键. Cocoapods 的本质是一套自动化工具.那么了解自动化流程背后的原理就很重要,如果我们能手动的模拟 Cocoapods 的流程,无论是对 Cocoapod

Xcode 工程文件打开不出来, cannot be opened because the project file cannot be parsed.

svn更新代码后,打开xcode工程文件,会出现  xxx..xcodeproj  cannot be opened because the project file cannot be parsed. 因为.xcodeproj工程文件冲突了,然后还是会强制更新,内部文件出现了冲突,所以解析不了文件. 会出现这样的冲突消息: <<<<<<< .mine 9ADAAC6A15DCEF6A0019ACA8 .... in Resources */, ======= 5

xcode工程编译错误:No architectures to compile for

问题 开发环境:xcode6,iPhone6模拟器 xcode工程编译错误:No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386). 原因 导致这个错误的原因主要是CPU的编译架构引起的,Build Active Architecture Only属性设置为了YES(只编译当前模拟器指令集),当出现不兼容设备时就会出现错误. 解决 在工程Build Settings,

集成Reveal到你的从Xcode工程中

集成Reveal:将Reveal加入您的Xcode工程 将Reveal加入您的Xcode工程,使得您团队中的其他成员无需任何额外的配置,就可以使用Reveal. 警告: 永远不要将包含Reveal动态库文件的应用正式发布.Apple不允许将含有动态加载库文件的iOS应用发布到Apple商店中. 在Xcode中打开您的iOS工程. 启动Reveal并选择__Help → Show Reveal Library in Finder__,这将会打开Finder窗口,并显示一个名为*iOS-Librar

java ,js获取web工程路径

一.java获取web工程路径 1),在servlet可以用一下方法取得: request.getRealPath(“/”) 例如:filepach = request.getRealPath(“/”) ”//upload//”; 2),不从jsp,或servlet中获取,只从普通java类中获取: String path = getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); SAXReader()

关于XCode工程中PrefixHead.pch文件的使用

1.首先先清除pch文件在工程中的作用: 存放一些全局的宏(整个项目中都用得上的宏) 用来包含一些全部的头文件(整个项目中都用得上的头文件) 能自动打开或者关闭日志输出功能 2.由于新建的XCode工程文件是没有pch文件的,原因可能是因为大家把大量的头文件和宏定义放到pch里边,导致编译时间过长.苹果去掉他可能是要加快编译时间增加用户体验.虽然失去了编程的便利性. 所以需要我们自己手动新建一个pch文件,步骤如下: Command+N,打开新建文件窗口:ios->other->PCH fil