0

我对方法中的参数有疑问,如下所示: - (BOOL)myMethod:(NSObject*)objectInput;

这是我试图在 PHP 中解释的内容以及如何在 Objective-C 中实现这一点:

<?php
class MyObject {
    public function myFunction($inputObject) {
        return $inputObject->someVariable;
        // get another member from some object not related
        // to this object.
    }
}
?>

我的 Objective-C 标头:( MyObject.h)

@interface MyObject : NSObject

- (BOOL)myMethod:(NSObject*)inputObject;

@end

Obj-C 实现:( MyObject.m)

#import <Foundation/Foundation.h>
#import "MyObject.h"

@implementation MyObject

- (BOOL)myObject:(NSObject*)inputObject {
    return inputObject.boolMember;
}

@end

问题是,当我在 Objective-C 中尝试时,Xcode 说不存在这样的成员。另外,我想要做什么?我对 Objective-C 及其所有的怪异仍然有点陌生。但是有更好的方法吗?

4

2 回答 2

1

您正在引用 NSObject 上不存在的属性。您需要创建自己的 NSObject 子类并添加一个属性。

@property (nonatomic, assign) BOOL boolMember
于 2013-04-03T15:52:59.707 回答
0

您试图从 中获取调用boolMember的东西NSObject*,它没有调用的方法或变量。你要么需要传递一个更具体的对象,它肯定有一个boolMember,要么使用内省/反射来确定对象是否有一个叫做boolMember.

我更熟悉在 Java 中使用反射,但从我能找到的内容来看,我认为您会想要Apple 的 Objective-C 运行时参考中的方法。如果您特别想要一个变量,您应该能够使用class_getProperty方法获取它。

于 2013-04-03T15:51:12.243 回答