I am a newbie to Objective-C. I would like to display the current date and time in an alert view.
- (IBAction)postButtonPressed:(UIButton *)sender {
NSString *formatString = [NSDateFormatter dateFormatFromTemplate:#"MMM d, yyyy h:mm" options:0 locale:[NSLocale currentLocale]];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:formatString];
NSString *todayString = [dateFormatter stringFromDate:[NSDate date]];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:#"Message Posted" message:#"Your Message is posted on: #todayString" delegate:nil cancelButtonTitle:nil otherButtonTitles:#"OK", nil];
[alert show];
}
Your alert message string needs to be redone. Try this:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:#"Message Posted"
message:[NSString stringWithFormat:#"Your Message is posted on: %#", todayString]
delegate:nil cancelButtonTitle:nil otherButtonTitles:#"OK", nil];
You can concate NSString using stringWithFormat: or stringWithString: there's also other appeding functions available, see doc
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:#"Message Posted" message:[NSString stringWithFormat:#"Your Message is posted on: %#",todayString] delegate:nil cancelButtonTitle:nil otherButtonTitles:#"OK", nil];
[alert show];
[alert release]; //don't forget to release UIAlertView object if you don't using ARC
Try
NSString *str = [NSString stringWithFormat:#"Your Message is posted on: %#", todayString];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:#"Message Posted" message:str delegate:nil cancelButtonTitle:nil otherButtonTitles:#"OK", nil];
[alert show];
Related
i am getting this error while running my app:
my code is:
- (IBAction)yes:(id)sender {
UIAlertView *msgbox=[[UIAlertView alloc]initWithTitle:#"Warrning" message:nil delegate:self cancelButtonTitle:#"Ok" otherButtonTitles:nil, nil];
if ([_usernametextbox.text length]>0)
{
if ([_passwordtextfield.text length]>0)
{
NSMutableString *ms=[[NSMutableString alloc]initWithFormat:url,_usernametextbox.text,_passwordtextfield];
NSURL *serviceurl=[[NSURL alloc] initWithString:ms];
NSError *error=nil;
NSData *data=[NSData dataWithContentsOfURL:serviceurl options:NSDataReadingUncached error:&error];
NSMutableDictionary *dic=[[NSMutableDictionary alloc]init];
NSString *jsondata=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
SBJSON *parsedata=[[SBJSON alloc] init];
dic=[parsedata objectWithString:jsondata error:nil];
if([dic count]>0)
{
NSMutableString *st=[[NSMutableString alloc]initWithString:[dic objectForKey:#"loginResult:#""+"]]; //#" " withString:#"+"
if ([st isEqualToString:#"YES"])
{
UIAlertView * alert=[[UIAlertView alloc] initWithTitle:#"accept" message:#"correct username" delegate:nil cancelButtonTitle:#"OK" otherButtonTitles:nil, nil];
[alert show];
}
else
{
UIAlertView * alert=[[UIAlertView alloc] initWithTitle:#"Error" message:#"Invalid UserName and Password" delegate:nil cancelButtonTitle:#"OK" otherButtonTitles:nil, nil];
[alert show];
}
}
}
else
{
msgbox.message=#"Please Enter Password...";
[msgbox show];
}
}
else
{
msgbox.message=#"Please Enter Username...";
[msgbox show];
}
I get the error:
Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: '* -[NSConcreteData
initWithContentsOfURL:options:error:]: nil URL argument'
on the line:
NSMutableString *st=[[NSMutableString alloc]initWithString:[dic objectForKey:#"loginResult:#""+"]]; //#" " withString:#"+" if ([st isEqualToString:#"YES"])
Need help with the [currentValue, targetValue, difference]; line. It says that initializer element is not a compile-time element. Please post solution.
NSString *message = [NSString stringWithFormat:
#"The value of the slider is: %d\nThe target value is: %d\nThe difference is: %d",
[currentValue, targetValue, difference];
UIAlertView *alertView = [[UIAlertView alloc]]
initWithTitle:#"Hello, World!"
message:message
delegate:nil
cancelButtonTitle:#"OK"
otherButtonTitles:nil];
Should be:
NSString *message = [NSString stringWithFormat: #"The value of the slider is: %d\nThe target value is: %d\nThedifference is: %d", currentValue, targetValue, difference];
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:#"Hello, World!"
message:message
delegate:nil
cancelButtonTitle:#"OK"
otherButtonTitles:nil];
You have an extra '[' before current and and extra ']' after the UIAlertView alloc.
I am trying to code the login process for an iPhone app in XCode. The problem is with the NSString serverOutput below. When I print it using printf(serverOutput.UTF8String); it prints 'Yes' to the console. However when I compare serverOutput to "Yes" it doesn't work. Any help would be appreciated. Here's my code:
- (IBAction) loginButton: (id) sender
{
// TODO: spawn a login thread
indicator.hidden = FALSE;
[indicator startAnimating];
NSString *post =[NSString stringWithFormat:#"username=%#&password=%#",userName.text, password.text];
NSString *hostStr = #"http://10.243.1.184/connectDB.php?";
hostStr = [hostStr stringByAppendingString:post];
NSData *dataURL = [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]];
NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];
printf(serverOutput.UTF8String);
if([serverOutput isEqualToString:#"Yes"]){
UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:#"Congrats" message:#"You are authorized"
delegate:self cancelButtonTitle:#"OK" otherButtonTitles:nil, nil];
[alertsuccess show];
[alertsuccess release];
}
else {
UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:#"Error" message:#"Username or Password Incorrect"
delegate:self cancelButtonTitle:#"OK"otherButtonTitles:nil, nil];
[alertsuccess show];
[alertsuccess release];
//[self.navigationController pushViewController:DashboardViewController animated:YES];
loginbutton.enabled = TRUE;
}
loginbutton.enabled = FALSE;
}
Based on helping others with similar situations I would say the problem is that the response from the server isn't just the string "Yes". Most likely there is some whitespace before and/or after the text. Perhaps a stray newline or two.
Try this:
NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];
NSLog(#"Result = '%#'", serverOutput); // look for space between quotes
serverOutput = [serverOutput stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
I'm receiving remote notification with string
\U00d8\U00aa\U00d8\U00aa\U00d8\U00a7\U00d8\U00a7"
I would like to display this string in alert dialog.
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:#"New Alert"
message:/*alertValue*/decodedString
delegate:nil
cancelButtonTitle:#"Ok"
otherButtonTitles:nil];
[alert show];
but it oesn't shown correctly, what i need to do to encode it correctly?
I figure it out:
NSString *decodedString = [NSString stringWithUTF8String:[alertValue cStringUsingEncoding:NSUnicodeStringEncoding]];
OK, I have a login screen that sends username and password to a PHP page. The PHP page echo's Yes or No based on the login status, but I would like it to echo the user id from the database for further use. Do I have to use JSON for this? I dont know how to retrieve more than one echo's. Currently the code is:
- (IBAction) login: (id) sender
{
NSString *post =[NSString stringWithFormat:#"username=%#&password=%#",usernameField.text, passwordField.text];
NSString *hostStr = #"https://www.mysite.com/login.php?";
hostStr = [hostStr stringByAppendingString:post];
NSData *dataURL = [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]];
NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];
if([serverOutput isEqualToString:#"Yes"]){
UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:#"Business Manager" message:#"Login Successful"
delegate:self cancelButtonTitle:#"OK" otherButtonTitles:nil, nil];
[alertsuccess show];
[alertsuccess release];
RootViewController *viewMenu = [[RootViewController alloc]
initWithNibName:#"RootViewController" bundle:[NSBundle mainBundle]];
self.rootViewController = viewMenu;
[viewMenu release];
[self.navigationController pushViewController:self.rootViewController animated:YES];
} else {
UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:#"Error" message:#"Username or Password Incorrect"
delegate:self cancelButtonTitle:#"OK" otherButtonTitles:nil, nil];
[alertsuccess show];
[alertsuccess release];
}
}
Now I just want to pull one more echo called "ID". Forming JSON for this seems arbitrary.
Technically you can use whatever response format you want -- though it's best to stick with something standard as you'll be able to find libraries made for you already. A REST service with a JSON response is a pretty easy way to facilitate communication between a server and client, so it would probably be a good idea to start there.