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 に答える