0

IP カメラからパラメーターを収集し、それらを Objective-C (iOS アプリ) の個々の文字列に渡そうとしています。任意の Web ブラウザーで次の URL を入力すると、[http://192.168.1.10:92/get_camera_params.cgi] が画面に表示されます。

var 解像度 = 32;
var 輝度 = 136;
var コントラスト = 4;
変数モード = 2;
var フリップ = 3;
var fps=0;

この値を収集して、次のような独自の文字列に渡したいと思います。

私の解像度 = 32;
私の明るさ = 136;
...................

私の推測では、何らかの方法で URL の応答を文字列に変換し、その文字列を何らかの方法で文字列の配列または 6 つの文字列に分割し、"=" と ";" の間のデータを収集する必要があると思います。個々の文字列で?

実際の値は Int ですが、コードの互換性をさらに高めるために、値は個々の文字列に格納する必要があります。

簡単に見えますが、これにどのようにアプローチすればよいかわかりません。うまくいきましたが、ここフォーラムに投稿する価値のあるものには進みませんでした。

例を手伝ってください。本当にありがたいです。

4

1 に答える 1

1

応答が html 以外の場合、次のように動作するはずです。

    NSMutableDictionary* dict = [NSMutableDictionary dictionary];
    NSCharacterSet* charSetToReplace = [NSCharacterSet characterSetWithCharactersInString:@";\r"];

    // get content from url
    NSString* urlContent = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://192.168.1.10:92/get_camera_params.cgi"] encoding:NSUTF8StringEncoding error:nil];

    // split content into rows
    NSArray* lines = [urlContent componentsSeparatedByString:@"\n"];

    for(NSString* line in lines)
    {
        //split row
        NSArray* comps = [line componentsSeparatedByString:@"="];

        if(comps.count < 2)
           continue;


        // [comp objectAtIndex:0] is the value left of =
        // [comp objectAtIndex:1] is the value right of =

        // left string without the 'var '
        NSString* varName = [[comps objectAtIndex:0] stringByReplacingOccurrencesOfString:@"var " withString:@""];

        // right string with trimming the ';'
        int varValue = [[[comps objectAtIndex:1] stringByTrimmingCharactersInSet:charSetToReplace] intValue];

        // write into dictionary
        [dict setObject:[NSString stringWithFormat:@"%d",varValue] forKey:varName];
    }

    // as int
    int myResolution = [[dict objectForKey:@"resolution"] intValue];
    int myBrightness = [[dict objectForKey:@"brightness"] intValue];

    // or as String
    NSString* myResolutionStr = [dict objectForKey:@"resolution"];
    NSString* myBrightnessStr = [dict objectForKey:@"brightness"];

    // and so on ...
于 2013-08-06T09:26:14.607 に答える