Objective C Programming Tutorials (playlist)
https://www.youtube.com/playlist?list=PL640F44F1C97BA581
https://www.youtube.com/playlist?list=PL640F44F1C97BA581
Step 1 : -first create a NSObject class.
#import <Foundation/Foundation.h> @interface NameOfClass : NSObject + (NSString *) Platform; + (NSString *) PlatformString; @end//// NameofClass.h//
//// NameofClass.m//#import "NameOfClass.m"#include <sys/types.h>#include <sys/sysctl.h>@implementation NameOfClass+ (NSString *) Platform{size_t size;sysctlbyname("hw.machine", NULL, &size, NULL, 0);char *machine = malloc(size);sysctlbyname("hw.machine", machine, &size, NULL, 0);NSString *platform = [NSString stringWithUTF8String:machine];free(machine);return platform;}+ (NSString *) PlatformString{NSString *platform = [self platform];if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone 1G";if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone 3G";if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS";if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone 4";if ([platform isEqualToString:@"iPhone3,3"]) return @"Verizon iPhone 4";if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone 4S";if ([platform isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G";if ([platform isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G";if ([platform isEqualToString:@"iPod3,1"]) return @"iPod Touch 3G";if ([platform isEqualToString:@"iPod4,1"]) return @"iPod Touch 4G";if ([platform isEqualToString:@"iPad1,1"]) return @"iPad";if ([platform isEqualToString:@"iPad2,1"]) return @"iPad 2 (WiFi)";if ([platform isEqualToString:@"iPad2,2"]) return @"iPad 2 (GSM)";if ([platform isEqualToString:@"iPad2,3"]) return @"iPad 2 (CDMA)";if ([platform isEqualToString:@"i386"]) return @"Simulator";if ([platform isEqualToString:@"x86_64"]) return @"Simulator";return platform;}@end
@interface RootViewController : UIViewController { NSMutableArray *arrImages; IBOutlet UIButton *btnImage1; IBOutlet UIButton *btnImage2; IBOutlet UIButton *btnImage3; IBOutlet UIButton *btnImage4; } - (IBAction)btnTakePicture_Clicked:(id)sender; - (IBAction)btnPostImages_Clicked:(id)sender;
Code for .m file.#import "RootViewController.h" #import "ASIFormDataRequest.h" @implementation RootViewController int intButton; - (void)viewDidLoad { [super viewDidLoad]; self.title = @"Select Images"; arrImages = [[NSMutableArray alloc]init]; }- (IBAction)btnTakePicture_Clicked:(id)sender { UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Select Image from..." delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Camera", @"Image Gallary", nil]; actionSheet.actionSheetStyle = UIActionSheetStyleBlackTranslucent; actionSheet.alpha=0.90; actionSheet.tag = 1; [actionSheet showInView:self.view]; [actionSheet release]; UIButton *btn = (UIButton *)sender; intButton = btn.tag; }- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { switch (actionSheet.tag) { case 1: switch (buttonIndex) { case 0: { #if TARGET_IPHONE_SIMULATOR UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Message" message:@"Camera not available." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; [alert release]; #elif TARGET_OS_IPHONE UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.sourceType = UIImagePickerControllerSourceTypeCamera; picker.delegate = self; //picker.allowsEditing = YES; [self presentModalViewController:picker animated:YES]; [picker release]; #endif } break; case 1: { UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; picker.delegate = self; [self presentModalViewController:picker animated:YES]; [picker release]; } break; } break; default: break; } }-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info { NSData *dataImage = UIImageJPEGRepresentation([info objectForKey:@"UIImagePickerControllerOriginalImage"],1); UIImage *img = [[UIImage alloc] initWithData:dataImage]; if (intButton == 1) { [btnImage1 setBackgroundImage:img forState:UIControlStateNormal]; [btnImage1 setImage:nil forState:UIControlStateNormal]; } else if (intButton == 2) { [btnImage2 setBackgroundImage:img forState:UIControlStateNormal]; [btnImage2 setImage:nil forState:UIControlStateNormal]; } else if (intButton == 3) { [btnImage3 setBackgroundImage:img forState:UIControlStateNormal]; [btnImage3 setImage:nil forState:UIControlStateNormal]; } else { [btnImage4 setBackgroundImage:img forState:UIControlStateNormal]; [btnImage4 setImage:nil forState:UIControlStateNormal]; } [arrImages addObject:dataImage]; [picker dismissModalViewControllerAnimated:YES]; }- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { [self.navigationController dismissModalViewControllerAnimated:YES]; }- (IBAction)btnPostImages_Clicked:(id)sender { if ([arrImages count] > 0) { NSString *strURL = @"Write Your URL Here."; ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:strURL]]; [request setDelegate:self]; [request setPostValue:@"This is sample text..." forKey:@"text"]; for (int i = 0; i < [arrImages count]; i++) { [request addData:[arrImages objectAtIndex:i] withFileName:@"image.jpg" andContentType:@"image/jpeg" forKey:[NSString stringWithFormat:@"image%d", i + 1]]; } [request startAsynchronous]; } else { UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Message" message:@"Please select images..." delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alertView show]; [alertView release]; } }- (void)requestFinished:(ASIHTTPRequest *)request { NSString *receivedString = [request responseString]; UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Message" message:receivedString delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alertView show]; [alertView release]; }- (void)requestFailed:(ASIHTTPRequest *)request { NSString *receivedString = [request responseString]; UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Message" message:receivedString delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alertView show]; [alertView release]; }