小编ash*_*tch的帖子

Objective-C 2.0:class_copyPropertyList(),如何列出类别的属性

我试图列出Objective-C类的所有属性,如Objective-C 2.0运行时编程指南中所述:

id LenderClass = objc_getClass("UIView");
unsigned int outCount, i;
objc_property_t *properties = class_copyPropertyList(LenderClass, &outCount);
for (i = 0; i < outCount; i++) {
    objc_property_t property = properties[i];
    fprintf(stdout, "%s %s\n", property_getName(property), property_getAttributes(property));
}
Run Code Online (Sandbox Code Playgroud)

但是这只列出了三个属性:

userInteractionEnabled Tc,GisUserInteractionEnabled
layer T@"CALayer",R,&,V_layer
tag Ti,V_tag
Run Code Online (Sandbox Code Playgroud)

查看UIView.h的头文件,这些是在类中直接声明的三个属性.其他UIView属性通过类别添加.

如何获取课程的所有属性,包括来自类别的属性?

我尝试使用iPhone模拟器(iPhone SDK 2.2.1),顺便说一句.(如果这很重要).

iphone cocoa objective-c

19
推荐指数
2
解决办法
9720
查看次数

svn更改列表:如何将操作限制为"默认"更改列表?

Subversion 1.5引入了更改列表,我想使用此功能将更改分组以供日后使用,并继续处理其他文件.问题是subversion命令喜欢svn diffsvn commit处理所有修改过的文件.如果我使用该--changelist选项指定更改列表,我可以限制它们操作的文件.但是,如何将操作限制为根本没有更改列表的文件?

例如:file1file2都被修改.file1在更改列表中,A并且file2没有更改列表.

如果我这样做,svn diff --changelist A我会看到差异file1.

但是,如果我这样做,svn diff我会看到差异file1file2.

我如何设法看到just的差异file2,即所有不属于更改列表的文件?

我正在使用Subversion 1.6(如果这有所不同).

svn

16
推荐指数
1
解决办法
3298
查看次数

Python C API:如何获取异常的字符串表示?

如果我这样做(例如)

 open("/snafu/fnord")
Run Code Online (Sandbox Code Playgroud)

在Python中(并且该文件不存在),我得到一个追溯和消息

 IOError: [Errno 2] No such file or directory: '/snafu/fnord'
Run Code Online (Sandbox Code Playgroud)

我想用Python的C API获取上面的字符串(即嵌入在C程序中的Python解释器).我需要它作为一个字符串,而不是输出到控制台.

随着PyErr_Fetch()我可以得到异常和值的类型对象.对于上面的示例,值是一个元组:

 (2, 'No such file or directory', '/snafu/fnord')
Run Code Online (Sandbox Code Playgroud)

从我获得的信息PyErr_Fetch()到Python解释器显示的字符串有一个简单的方法吗?(不涉及为每个异常类型自己构造这样的字符串.)

python exception python-c-api

10
推荐指数
1
解决办法
4144
查看次数

mach_override和鱼钩之间的技术差异?

今天我第一次遇到了鱼钩库https://github.com/facebook/fishhook,它可用于动态重新绑定Mach-O二进制文件中的符号(他们说是针对iOS,但我想这些代码也适用于OS X).

到目前为止,我只知道并使用了mach_override https://github.com/rentzsch/mach_override,它旨在实现类似的目标(即将一个函数的一个实现替换为另一个),但是将函数开头的汇编语句重写为跳到不同的位置.

鱼钩方法看起来更简单,但由于它"只"重写符号表,我有直觉感觉它不像mach_override方法那样通用.

当一个项目优先于另一个项目时(即一种方法不起作用,但另一种方法不起作用的情况),有人可以提供一些关于情况的一些硬技术事实吗?

macos mach-o ios

5
推荐指数
1
解决办法
1968
查看次数

标签 统计

cocoa ×1

exception ×1

ios ×1

iphone ×1

mach-o ×1

macos ×1

objective-c ×1

python ×1

python-c-api ×1

svn ×1