0

私は Objective C プログラミングにまったく慣れていないので、Mac 開発者ライブラリで見つけたものをどのように実装するかを確認する必要があります。たとえば、Mac Developer Library で次のコードを見つけました。

- (BOOL)containsObject:(id)anObject

このメソッドを実装するために必要な手順はありますか?

  1. .h ファイルに追加

    -(BOOL)containsObject:(id)anObject;

次に、.m ファイルで次のように実装します。

- (BOOL)containsObject:(id)anObject
{
   //What do I place here to search my array with the objects?
   return YES;
}

数値の配列を検索してこのメ​​ソッドを使用する方法の例を教えてもらえますか?

これは私の配列です:

NSArray *first;

first = [NSArray arrayWithObjects:1,2,3,4,5, nil];
4

2 に答える 2

1

最初の質問に関しては、まさにそれを行うことができます。より視覚的に理解できるようにするための例は次のとおりです。

YourClassName.h

#import <Foundation/Foundation.h>

@interface YourClassName : Subclass  //replace subclass with something like NSObject or whatever you need
{

}

- (BOOL)containsObject:(id)anObject;

@end

と...

YourClassName.m

#import "YourClassName.h"

@implementation YourClassName

- (BOOL)containsObject:(id)anObject
{
    //Insert function body here
}

@end

2 番目の質問については、私は NSArray を使用したり、その奇妙な関数を使用してロードしたりすることにあまり慣れていません。私のアドバイスは、(id)anObject の代わりに (NSArray)anObject を使用することです。これは、配列を関数に直接ロードして、そこで検索パラメーターを作成できるためです。containsObject に関して、どのオブジェクトを探しているのか正確にはわかりません。番号が含まれているかどうかを確認していますか?値に配列が含まれている場合は? 少し指定してください。より良い答えを掘り下げることができるかもしれません

編集:

あなたはObjective-Cに慣れていないので、おそらく配列内の数字を探しているだけだと思いました。目的を達成するには、いくつかのオプションがあります。どちらも機能の変更が必要です。最初は、関数を次のように変更するだけです。

- (BOOL)containsObject:(int)object fromArray:(int*)array length:(int)length;

YourClassName.h で。パラメータをいつでも別のデータ型に変更できるようになりましたが、これは整数に対しても機能します。長さパラメータなしでこれを行うこともできますが、コードを節約できると思います (個人的な好み)。そして .m ファイルで:

- (BOOL)containsObject;(int)object fromArray:(int*)array length:(int)length
{
    for(int i = 0; i <= length; i++)
    {
        if (array[i] == object)
        {
            return YES;
        }
    }
    return NO;
}

2番目は、長さオプションともう少しコードがないだけです

于 2013-09-05T02:26:25.510 に答える