-1

私はこれをtest.htmlファイルに次のように持っています

<a href="http://playSound/?arguments=%7B%20soundID%3A%20%E2%80%9CDOG%E2%80%9D%2C%20foreground%3A%20false%2C%20loop%3A%20true%20%7D">SHOULD PLAY DOG IF YOU CLICK ME!</a>

html は既に iOS シミュレーターにロードされています。これを解析し、DOG を関数に渡して、ハードコーディングせずに DOG を再生できるようにしたいと考えています。

どうやってやるの?私は Objective-C を初めて使用し、コードとコーディング構造について助けが必要です。

これまでのところ、HTML コンテンツをシミュレーターにロードしただけで、エンコードされた URL を使用して JSON からこの URL を取得しました。私の次のステップは、NSSerlization を使用して「DOG」を取得し、解析することです。

4

1 に答える 1

1

URL デコードされた引数がある場合、次のような文字列が得られます。

{ soundID: “DOG”, foreground: false, loop: true }

これを NSString にロードすると、そこから NSDictionary を取得できます。

NSString *string = @"{ soundID: “DOG”, foreground: false, loop: true }";
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:[string dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil];

これで、SoundID を簡単に取得できます。

NSString *soundID = dictionary[@"soundID"];

編集:

引数の GET 変数を取得するには、次のような URL があるとします。

NSString *url = @"<a href="http://playSound/?arguments=%7B%20soundID%3A%20%E2%80%9CDOG%E2%80%9D%2C%20foreground%3A%20false%2C%20loop%3A%20true%20%7D">SHOULD PLAY DOG IF YOU CLICK ME!</a>";

このように分割して、上記のコードで使用する URL デコードされた引数を取得できます。

NSArray *urlComps = [url componentsSeparatedByString:@"arguments="];
NSString *arguments = [urlComps[1] componentsSeparatedByString:@"\""][0];
arguments = [arguments stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
于 2013-02-27T18:53:32.747 に答える