Objective-C运行时是一个运行时支持库,提供了Objective-C语言的实现。它的API允许在运行时动态创建和配置类,以及内省现有的类,方法,属性和方法实现。
假设我有以下内容: @interface MyClass : NSObject { NSString* _foobar; } @property (非原子,保留) NSString* foobar; @结尾 @实现MyClass @动态foobar; - (void)setFoobar:(NS...
尽管运行时不同,但 Swift 和 Obective-C 如何互操作?
据我了解,Swift 和 Objective-C 是可以互操作的。主要用 Swift 编写的项目可以使用 Objctive-C 库(甚至 C 和 C++ 库),反之亦然。 我知道 Java 和
据我所知,Objective-C 中的 IMP 类型代表函数指针。有什么方法可以从块指针创建 IMP 吗?谢谢你的想法。
Swift 块的 `objc_method_description.types` 的格式是什么?
Swift 编译器为带有块的 swift 方法生成的 Objective-C 方法编码似乎使用了任何地方都没有记录的语法。 例如方法: func DebugLog2(消息: String) as...
通过 NSFileManager 在 applescript 中创建随机临时目录
我正在尝试使用 NSFileManager。我知道我可以在没有 NSFileManager 的情况下做到这一点,这超出了这个问题的范围 使用框架“基础” 将临时目录设置为
我试图在我的原生C应用程序中使用Objective-C运行时实现一个解决方案,即如何设置canBecomeKeyWindow?到我的原生C应用程序中,使用Objective-C运行时(该应用程序已经用客观C运行时编写)。有没有一种方法...
语境:我正在做一个PharoSmalltalk-> Objective-C桥接方案。我正在做一个PharoSmalltalk -> Objective-C桥接方案:在下面的Objective-C ScriptingBridge片段中:iTunesApplication *iTunes = [SBApplication ...
我正在使用objc / objc-runtime.h作为实验用纯C ++编写MacOS窗口应用程序。我可以打开并显示NSWindow,但是在调用initWithContentRect:styleMask:...
以下代码:NSObject * a = [[NSObject alloc] init]; c类= [a类];类meta1 = [[[a class] class];类meta2 = objc_getMetaClass(“ NSObject”); NSLog(@“%@%d”,c,...
我有一个生成器,它返回符合协议A的对象。我想向这些对象添加一个属性(可能带有类别),以便我可以做一些事来达到我的目的,这...
object_getClass(obj)和[obj class]给出不同的结果
当调用object_getClass(obj)和[obj class]时,我得到了两个不同的对象实例。知道为什么吗?类cls = object_getClass(obj);类cls2 = [obj类]; (lldb)po cls $ 0 = 0x0003ca00测试(...
我有一个字典,其中包含来自REST端点的用户数据。这是我的用户类#import @接口用户:NSObject @属性(强,非原子)NSString * ...
在Objective-C中,我可以测试给定的类或实例是否响应某些选择器。但是如何查询类或实例的所有方法或类的属性(例如,所有列表的列表...
我需要一种方法来传递一个属性并获得分配给它的名字。有什么建议么? @属性(非原子,保留)为MyObject * crazyObject;的NSString * STR = SOME_WAY_TO_GET_PROPERTY_NAME(crazyObject); // ...
使用method_getReturnType调用特定类型的实例成员函数
我是Objective-C的新手,所以我对这门语言并不太了解。我要做的是遍历一个对象的所有可用实例方法,并调用不带参数的方法,返回...
Objective-C的。在类别中重写方法时未定义行为的性质
我读到这个:避免使用类别方法名称冲突因为类别中声明的方法被添加到现有类中,所以需要非常小心方法名称。如果是...的名字
可以安全地将objc_msgsend强制转换为可变长度的参数
假设我在运行时得到了一个对象和一个选择器,我打算安全地调用它,所以我定义了#define objc_msgsend_va((void(*)(id,SEL,...))objc_msgsend)#define Call_object(obj,塞尔,.....
object_getIvar(id对象,Ivar ivar)正确读取iVArs的值,但在BOOL类型iVar上失败并崩溃。我需要一个类的所有iVars的值。有什么方法可以解决它。