0

私は Objective-C を 5 日間学習しており、プログラミング経験は 2 週間しかないので、できるだけ簡単に答えてください。

私は本で演習を行っており、通常の単語でもある固有名詞のリストを生成するよう求められています。NSArrayこれを行うために、適切な名前オブジェクトから適切な名前ごとに for ループを実行しています。NSArrayその for ループ内には、ネストされた for ループがあり、メソッドを使用して通常の単語オブジェクト内の各単語に対して各名前をテストしますcaseInsensitiveCompare

これが私のコードです:

import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {

        //Gets the sting with proper names
        NSString *propername = [NSString stringWithContentsOfFile:@"/usr/share/dict/propernames" encoding:
        NSUTF8StringEncoding error:NULL];

        //Gets the string with regularwords
        NSString *inpropername = [NSString stringWithContentsOfFile:@"/usr/share/dict/words" encoding:
                                NSUTF8StringEncoding error:NULL];

        NSArray *proper = [propername componentsSeparatedByString:@"/n"];
        NSArray *inproper = [inpropername componentsSeparatedByString:@"/n"];

        for (NSString *n in proper){
            NSLog(@"%@", n);
            for(NSString *i in inproper){
                NSLog(@"%@", i);
                if ([n caseInsensitiveCompare:i] == NSOrderedSame)
                {
                    NSLog(@"Yahooo! Got One! %@", n);
                }
            }
        }

    }
    return 0;
}

ネストされた形式で実行される for ループの代わりに、それらは順次形式で実行されます。出力は次のようになります。

Aaron  
all the names...  
Yvonne  
a  
all the regular words....  
Zyzzogeton  

ネストされた for ループがネストされた方法で実行されない理由についてのアイデアはありますか?

4

1 に答える 1

4

「\n」の代わりに「/n」を使用しているため、ファイルを単語に分割していないことを除いて、コードは正しいです。

これは、各配列には、すべての単語を含む文字列である要素が 1 つだけ含まれていることを意味します。

于 2012-08-12T02:06:15.340 に答える