2

私はこのチャットアプリを作成しており、Webサーバー上の.phpファイルを使用してデータをSQLデータベースに保存しています

これまでの私のコードは次のとおりです。

#import "vtchatViewController.h"

@interface vtchatViewController ()

@end

@implementation vtchatViewController

@synthesize messageBox, messageView, Send, Refresh;


- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    NSString *usrName = [[NSUserDefaults standardUserDefaults] stringForKey:@"user_name"];

    NSURL *url = [NSURL URLWithString:@"http://server.com/ios/messages.php"];  [messageView loadRequest:[NSURLRequest requestWithURL:url]];

}

- (IBAction)refreshButton:(id)sender {
    NSURL *url = [NSURL URLWithString:@"http://server.com/ios/messages.php"];  [messageView loadRequest:[NSURLRequest requestWithURL:url]];

}

- (IBAction)sendButton:(id)sender {
    // server.com/ios/add.php?user=Username here&message=Message Her

    [messageBox resignFirstResponder];
    NSString* urlString = [[NSString stringWithFormat:@"http://server.com/ios/add.php?user=",usrName "&message=%@", messageBox.text] stringByAddingPercentEscapesUsingEncoding : NSUTF8StringEncoding];
    NSURL *add = [NSURL URLWithString:urlString];



    [messageView loadRequest:[NSURLRequest requestWithURL:add]];
    messageBox.Text = @"";


}



- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

ただし、「viewDidLoad」の行では、設定バンドルからユーザー名を使用できません。

NSString* urlString = [[NSString stringWithFormat:@"http://server.com/ios/add.php?user=",usrName "&message=%@", messageBox.text] stringByAddingPercentEscapesUsingEncoding : NSUTF8StringEncoding];
NSURL *add = [NSURL URLWithString:urlString];

「宣言されていない識別子 'usrName' の使用」というエラーが表示され、これで使用するのに正しい「usrName」を実装したかどうかもわかりません

「server.com/ios/add.php?」にデータを送信するために必要なだけです。データは次の形式にする必要があります: "user=Username here&message=Message here"

固定のユーザー名を使用するだけで機能しましたが、前述のように、設定ファイルに保存されているユーザー名を使用する方法がわかりません

前もって感謝します

4

2 に答える 2

3

urlString次のように変数にユーザー名を挿入するには、文字列形式のトークンを使用する必要があります。

NSString* urlString = [[NSString stringWithFormat:@"http://server.com/ios/add.php?user=%@&message=%@", usrName, messageBox.text];

これは、フォーマット文字列が機能しなかった理由と、そのエラーが発生した理由を理解するのに役立ちます。usrName上記のコードはorの値をエスケープしていないmessageBox.textため、それらをコードに追加し直す必要があります。

于 2012-10-22T16:04:50.270 に答える
0

usrName をインターフェイス変数のようにする必要があります。

そのように:

@interface vtchatViewController () {
    NSString *usrName;
}

@end

@implementation vtchatViewController

- (void)viewDidLoad
{
    ...
    NSString *usrName = [[NSUserDefaults standardUserDefaults] stringForKey:@"user_name"];
    ...
}

@end
于 2012-10-22T16:05:11.517 に答える