有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Objective C中调用方法的java语法?

我来自Java世界,所以对我来说都是object.foo(),但是在Objective C中,对象消息传递是调用方法的唯一方式吗

[object foo];

共 (4) 个答案

  1. # 1 楼答案

    对。您可以使用点语法来获取或设置Objective C属性。例如,在UILabel*标签上设置文本可以是[label setText:@"some text"];label.text = @"some text";

  2. # 2 楼答案

    您可以使用KVC:

     [label setValue:@"Some text" forKey:@"text"];
    
  3. # 3 楼答案

    为了学究的缘故,为什么不做些低级的:

    objc_msgSend(object, sel_getUid("foo"), errVar);
    
  4. # 4 楼答案

    首先想到的是使用@property和点表示法。名为“foo”的@property类允许您执行以下操作:

    anInstance.foo = @"bar";
    

    在编译时,字面上的转换为

    [anInstance setFoo:@"bar"];
    

    (与“getter”类似)

    其他方法更高级,例如使用NSObject的performSelector:method或其他系统,如NSInvocation等。更深入地说,有一些方法可以在运行时使用c函数调用方法(所有这些语法最终归结为调用c函数);但我相信那不是你想要的