Friday, December 17, 2010
to check app running first time or not on iphone
if (![prefs objectForKey:@"alert"]) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"this is 1st time" message:@"Some description"
delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
[alert release];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"alert"];
}
else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@" this is 2nd time!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; [alert release];
NSLog(@" DEJA VU");
}
[[NSUserDefaults standardUserDefaults] synchronize];
Wednesday, October 20, 2010
IPhone GPS
NSLog(@"lattttttttiiiiiiiiiiiiiudeeeeeeeee");
if (locationManager != nil) {
return locationManager;
}
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
return locationManager;
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
//[locationMeasurements addObject:newLocation];
NSLog(@"l89899898ee");
#pragma mark lat
NSString *lat = [[NSString alloc] initWithFormat:@"%0.3f", newLocation.coordinate.latitude];
// NSLog(@"1l89899898ee");
NSString *lonn = [[NSString alloc] initWithFormat:@"%0.3f", newLocation.coordinate.longitude];
//latitudeString =newLocation.coordinate.latitude;
//latitudeString=lat;
//NSLog(@"lat is %@", lat);
//self.myLatitude = latitudeString;
//[latitudeString release];
#pragma mark long
//NSLog(@"2l89899898ee");
NSUserDefaults *alat = [NSUserDefaults standardUserDefaults];
[alat setObject:lat forKey:@"Latitude"];
//NSLog(@"%@",latitudeString);
//NSLog(@"3l89899898ee");
NSUserDefaults *along = [NSUserDefaults standardUserDefaults];
[along setObject:lonn forKey:@"Longitude"];
//NSLog(@"lon fgfgfgfg is %@", lonn);
//longitudeString=newLocation.coordinate.longitude;
//longitudeString=lon;
//NSLog(@"4l89899898ee");
}
- (void)locationManager: (CLLocationManager *)manager didFailWithError: (NSError *)error
{
NSLog(@"Location Error: %@",error);
switch([error code])
{
case kCLErrorNetwork: // general, network-related error
{
NSLog(@"please check your network connection or that you are not in airplane mode");
}
break;
case kCLErrorDenied:{
NSLog(@"user has denied to use current Location");
}
break;
default:
{
NSLog(@"unknown network error");
}
break;
}
[manager stopUpdatingLocation];
}
- (void)starte {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog(@" thread stretr ");
[[self locationManager] startUpdatingLocation];
NSLog(@" main tgreas point is %@",latitudeString);
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// getting an NSString
NSString *Latu = [prefs stringForKey:@"Latitude"];
NSLog(@" new lati is %@",Latu);
NSUserDefaults *alongs = [NSUserDefaults standardUserDefaults];
NSString *Longu = [alongs stringForKey:@"Longitude"];
NSLog(@" new longu is %@",Longu);
#pragma mark APP iD
#pragma mark sysID
NSString *sysID=[[UIDevice currentDevice] uniqueIdentifier];
NSLog(@" ID IS %@",sysID);
NSString *ip=@"ip";
NSString* OS=@"3";
//NSLog(@"latitude is %@", myString );
//latitudeString=@"1.3";
//longitudeString=@"103.8";
NSString *AppID=[NSString stringWithFormat:@"%@|%@|%@|%@|%@",Latu,Longu,sysID,ip,OS];
NSLog(@" MY APPLE OD IS %@",AppID );
NSUserDefaults *aDD = [NSUserDefaults standardUserDefaults];
[aDD setObject:AppID forKey:@"AppID"];
///////////////////////////////////////////////////////////////////////
[pool drain];
[pool release];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[self locationManager] startUpdatingLocation];
[self performSelectorInBackground:@selector(starte) withObject:nil];
}
Monday, October 18, 2010
Flip navigation controller
[UIView setAnimationDuration: 1];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:YES];
[self.navigationController pushViewController:atab animated:YES];
//[self.navigationController pushViewController:myViewController animated:NO];
[UIView commitAnimations];
Friday, October 15, 2010
Thursday, October 14, 2010
remove charcater from string
NSString *newStr = [myString substringWithRange:NSMakeRange(1, [myString length] - 1)];
Tuesday, October 12, 2010
AES encrypt and dec
http:/\iphonedevelopment.blogspot.com/2009/02/strong-encryption-for-cocoa-cocoa-touch.html
and use them like this
NSString *passphrase = @"1234567812345678";
NSStringEncoding myEncoding = NSASCIIStringEncoding;
NSString *alphaStringPlain = @"hello";
NSData *alphaDataPlain = [alphaStringPlain dataUsingEncoding:myEncoding];
NSData *alphaDataCypher = [alphaDataPlain AESEncryptWithPassphrase:passphrase];
NSString *alphaStringCypher = [[NSString alloc] initWithData:alphaDataCypher encoding:myEncoding];
NSLog(alphaStringCypher); // encode
///////
NSData *zCypher = [alphaDataCypher AESDecryptWithPassphrase:passphrase];
NSString *Cypher = [[NSString alloc] initWithData:zCypher encoding:myEncoding];
//NSData *zCypher = [alphaStringCypher AESDecryptWithPassphrase:passphrase];
NSLog(@" hua kya decode %@",[Cypher dataUsingEncoding:NSUTF8StringEncoding]);// decode
deatil code
http:\/blog.objectgraph.com/index.php/2010/04/20/encrypting-decrypting-base64-encode-decode-in-iphone-objective-c/
Tuesday, September 28, 2010
JSON parser
{ "name":{
"firstName": "John",
"lastName": "Smith",
"age": 25,
"address":
{
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021"
},
"phoneNumber":
[
{
"type": "home",
"number": "212 555-1234",
"home":"sdfsdfdsf"
},
{
"type": "fax",
"number": "646 555-4567",
"home":"6666"
}
{
"type": "sun",
"number": "646 555-4567",
"home":"lopppp"
}
]
}
}
//////////////////////// this is how we parse this JSON
- (void)viewDidLoad {
jsonArray= [[NSMutableArray alloc] init] ;
[super viewDidLoad];
responseData = [[NSMutableData data] retain];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://58.185.167.53/rahul/Json/Number.json"]];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
[responseData setLength:0];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[responseData appendData:data];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
label.text = [NSString stringWithFormat:@"Connection failed: %@", [error description]];
}
- (void)addRowToLogWindow:(id)data {
label.text = [NSString stringWithFormat:@"Adding data: %@%@", data, label.text]; // adding new row + 2x new line "
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
[connection release];
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
[responseData release];
NSError *error;
SBJSON *json = [[SBJSON new] autorelease];
NSDictionary *data = (NSDictionary *) [json objectWithString:responseString error:nil];
NSDictionary *menu = (NSDictionary *) [data objectForKey:@"name"];
NSArray *items = (NSArray *) [menu objectForKey:@"phoneNumber"];
int ndx;
for (ndx = 0; ndx< items.count; ndx++) {
stream = (NSDictionary *)[items objectAtIndex:ndx];
NSLog(@"This is the title of a stream: %@", [stream valueForKey:@"type"]);
[jsonArray addObject:stream];
}
NSLog(@" aray is %@",jsonArray);
NSLog(@" sterab is %@",[stream valueForKey:@"home"]);
[tableview reloadData];
NSLog(@" json coutn is %d",[jsonArray count]);
NSString *luckyNumbers = [json objectWithString:responseString error:&error];
[responseString release];
if (luckyNumbers == nil)
label.text = [NSString stringWithFormat:@"JSON parsing failed: %@", [error localizedDescription]];
else {
NSMutableString *text = [NSMutableString stringWithString:@"Lucky numbers:\n"];
label.text = text;
}
}
#pragma mark tabel
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
//if (searching)
//return 1;
//else
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSLog(@" 43534535353 %d",[jsonArray count]);
return [jsonArray count];
}
//////////// WORKING CELL BIGGER SIZE CODE///////////
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
/* if(indexPath.row == 0)
return 85;
*/
return 55;
}
////////////// ENDS HERE/////////////
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//UITableView *tableView;
UITableViewCell *cell;
static NSString *CellIdentifier = @"Cell";
//self.tableView.frame = CGRectMake(0,searchBar.bounds.size.height,320,480);
cell= [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil ) {
NSLog(@" inside");
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
mainLabel = [[[UILabel alloc] initWithFrame:CGRectMake(10.0, 5.0, 220.0, 15.0)] autorelease];
mainLabel.tag =33;
// mainLabel.font = [UIFont systemFontOfSize:14.0];
[mainLabel setFont:[UIFont boldSystemFontOfSize:[UIFont smallSystemFontSize]]];
mainLabel.textAlignment = UITextAlignmentLeft;
mainLabel.textColor = [UIColor blackColor];
mainLabel.highlightedTextColor = [UIColor greenColor];
//mainLabel.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleHeight;
[cell.contentView addSubview:mainLabel];
mainLabel.backgroundColor=[UIColor clearColor];
}
mainLabel.text = [[jsonArray objectAtIndex:indexPath.row] objectForKey:@"number"];
NSLog(@" dicst 5@",stream);
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
return cell;
}
Monday, September 13, 2010
Delegates Concept
The delegate object finds the didSelectRowAtIndexPath method and executes the code inside.
There are lots of Delegate methods for many different objects. For instance, the Text Field object can't do anything on its own. Instead, it uses a delegate to perform actions. If you press the enter key on the on screen keyboard, the text field asks the delegate object to perform a specific method, textFieldShouldReturn. If the delegate you set for your text field does not have a textFieldShouldReturn method, the text field will not know what to do when you press the enter button.
Wednesday, August 18, 2010
multiple annotation map
{
NSLog(@"ddddddd");
/*
locationManager=[[CLLocationManager alloc] init];
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.delegate=self;
//Start the compass updates.
[locationManager startUpdatingHeading];
[[self locationManager] startUpdatingHeading];
[[self locationManager] startUpdatingLocation];
*/
[mapView setMapType:MKMapTypeStandard];
[mapView setZoomEnabled:YES];
[mapView setScrollEnabled:YES];
MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } };
region.center.latitude = 1.30;//41.902245099708516;
region.center.longitude = 103.8;//12.457906007766724;
region.span.longitudeDelta = 0.01f;
region.span.latitudeDelta = 0.01f;
[mapView setRegion:region animated:YES];
[mapView setDelegate:self];
MyAnnotation *ann = [[MyAnnotation alloc] init];
ann.title = @"Rome";
ann.subtitle = @"San Peter";
ann.coordinate = region.center;
//[mapView addAnnotation:ann];
/// one more annt
//My own Annotation
MKCoordinateRegion SecondRegion;
SecondRegion.center.latitude = 1.301;
SecondRegion.center.longitude = 103.81;
MyAnnotation *aSecondAnnotation = [[MyAnnotation alloc] init];
aSecondAnnotation.title = @"Second Annotation";
//By the way, this line doesn’t work, everything is still in the same line :(
aSecondAnnotation.subtitle = @"clerqkey";
aSecondAnnotation.coordinate = SecondRegion.center;
//// 2 more
MKCoordinateRegion SecondRegiona;
SecondRegiona.center.latitude = 1.31;
SecondRegiona.center.longitude = 103.9;
MyAnnotation *aSecondAnnotationa = [[MyAnnotation alloc] init];
aSecondAnnotationa.title = @"3rd Annotation";
//By the way, this line doesn’t work, everything is still in the same line :(
aSecondAnnotationa.subtitle = @"ret";
aSecondAnnotationa.coordinate = SecondRegiona.center;
//////////////////////////////////////////////////////////////////////////////////////////////
NSArray *Annotations = [NSArray arrayWithObjects:ann,aSecondAnnotation,aSecondAnnotationa,nil];
[mapView addAnnotations:Annotations];
[super viewDidLoad];
}/*
- (void)locationManager:(CLLocationManager *) manager didUpdateHeading:(CLHeading *) newHeading {
NSLog(@"55555555555555555555555");
NSLog(@"New magnetic heading: %f", newHeading.magneticHeading);
NSLog(@"New true heading: %f", newHeading.trueHeading);
}
*/
- (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView
{
for (id currentAnnotation in mapView.annotations) {
[mapView selectAnnotation:currentAnnotation animated:YES];
}
}
- (MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id
{
MKPinAnnotationView *pinView = nil;
[[self locationManager] startUpdatingHeading];
if(annotation != mapView.userLocation)
{
static NSString *defaultPinID = @"com.invasivecode.pin";
pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
if ( pinView == nil )
pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];
pinView.pinColor = MKPinAnnotationColorPurple;
pinView.canShowCallout = YES;
pinView.animatesDrop = YES;
}
else
{
[mapView.userLocation setTitle:@"I am here"];
}
return pinView;
}
Thursday, August 12, 2010
unzip data from web
[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSFileManager *fileManager= [NSFileManager defaultManager];
NSString* filePath = [NSString stringWithFormat:@"%@/temp.zip", aDirectory];
NSString* updateURL = @"http://localhost/list.zip";
NSLog(@"Checking update at : %@", updateURL);
NSData* updateData = [NSData dataWithContentsOfURL: [NSURL URLWithString: updateURL] ];
[fileManager createFileAtPath:filePath contents:updateData attributes:nil];
ZipArchive *zipArchive = [[ZipArchive alloc] init];
if([zipArchive UnzipOpenFile:filePath]) {
if ([zipArchive UnzipFileTo:aDirectory overWrite:YES]) {
//unzipped successfully
NSLog(@"Archive unzip Success");
[fileManager removeItemAtPath:filePath error:NULL];
} else {
NSLog(@"Failure To Unzip Archive");
}
} else {
NSLog(@"Failure To Open Archive");
}
[zipArchive release];
NSLog(@"string text is %@",filePath);
Tuesday, August 10, 2010
saving locaaly and update data from web
NSString *applicationDocumentsDir =
[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *storePath = [applicationDocumentsDir stringByAppendingPathComponent:@"sample1.cfg"];
NSURL *instructionsURLd = [[NSURL alloc] initFileURLWithPath:filePath];
NSData *dataXML = [NSData dataWithContentsOfURL:instructionsURLd];
[dataXML writeToFile:storePath atomically:YES];
// NSLog(@"matrix path %@",applicationDocumentsDir);
//NSLog(@"neo path %@",storePath);
#pragma mark update
// http://localhost/update.cfg
//NSData *dataXML = [NSData dataWithContentsOfURL:instructionsURLd];
NSURL *urlf = [[NSURL alloc] initWithString:@"http://localhost/update.cfg"];
dataXML = [NSData dataWithContentsOfURL:urlf];
NSMutableData *file = [[NSMutableData alloc] initWithContentsOfFile:storePath];
[file appendData:dataXML];
[file writeToFile:storePath atomically:YES];
Friday, August 6, 2010
Dynamic buttons and method on them
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"tabs" ofType:@"cfg"];
if (filePath) {
NSString *myText = [NSString stringWithContentsOfFile:filePath];
NSMutableArray *a1 = [[NSMutableArray alloc] init];
[a1 addObjectsFromArray:[myText componentsSeparatedByString:@"\n"]];
[a1 addObject:myText];
NSUInteger i;
for (i = 1; i <= [a1 count]-1; i++)
{
NSString *urlE=[a1 objectAtIndex:1];
NSLog(@"url is %@",urlE);
#pragma mark buttons
CGRect frame = CGRectMake(curXLoc, 10, 60, 30);
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = frame;
button.tag=i;
[button setImage:[UIImage imageNamed:@"tab2.png"] forState:UIControlStateNormal];
[button setTitle:(NSString *)@"new button" forState:(UIControlState)UIControlStateNormal];
[button addTarget:self action:@selector(buttonEvent:) forControlEvents:UIControlEventTouchUpInside];
curXLoc += (kScrollObjWidth1);
[self.view addSubview:button];
}
}
}
-(void)buttonEvent:(UIButton*)sender{
NSLog(@"new button clicked!!!");
if (sender.tag == 1) {
NSLog(@"1");
}
if (sender.tag == 2) {
NSLog(@"2");
}
}
Tuesday, July 27, 2010
double tap
if([touches count] == 2) {
// Order touches so they're accessible separately
NSMutableArray *touchesArray = [[[NSMutableArray alloc]
initWithCapacity:2] autorelease];
for(UITouch *aTouch in touches) {
[touchesArray addObject:aTouch];
}
UITouch *firstTouch = [touchesArray objectAtIndex:0];
UITouch *secondTouch = [touchesArray objectAtIndex:1];
// Do math
CGPoint firstPoint = [firstTouch locationInView:[firstTouch view]];
CGPoint secondPoint = [secondTouch locationInView:[secondTouch view]];
distance = sqrtf((firstPoint.x - secondPoint.x) *
(firstPoint.x - secondPoint.x) +
(firstPoint.y - secondPoint.y) *
(firstPoint.y - secondPoint.y));
}
show image in center of table view
frame= CGRectMake(230 ,50, 50, 50);
UIImageView * myImageView = [[UIImageView alloc]init];
myImageView.image = [UIImage imageNamed:@"bowl.png"];
//cell.imageView.image= [UIImage imageNamed:@"bowl.png"];
myImageView.frame = frame;
//UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bowl.png"]];
[cell.contentView addSubview: myImageView];
[myImageView release];
Thursday, July 22, 2010
Wednesday, July 21, 2010
How to Debug an iPhone App Crash, Part 1: EXC_BAD_ACCESS
2. Even better, run scan-build. I did a test recently, and found that some common errors are off by default in Build and Analyze that can be turned on in scan-build.
3. Choose Run > Enable Guard Malloc in the menu, and then re-run your application. This finds a whole class of buffer overrun issues. If this detects it, you’ll see a better error in the console.
4. You can instruct the compiler to ignore release calls and then report if anyone is sending messages to objects that would have been deallocated. This results in much better errors in the Console if it detects them.
5. Valgrind is the gold standard for finding memory bugs on Linux, and here’s a way to get it working in the iPhone Simulator.
Thanks to http://www.loufranco.com/blog/files/debug-iphone-crash-EXC_BAD_ACCESS.html
Friday, July 16, 2010
Adding images to map Annotation
(id
if (annotation == mapView.userLocation) return nil;
UIImage *anImage = nil;
if([[annotation title] isEqualToString:@"type1"])
{
anImage=[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"type1.png" ofType:nil]];
}
else if([[annotation title] isEqualToString:@"type2"])
{
anImage=[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"type2.png" ofType:nil]];
}
else if([[annotation title] isEqualToString:@"type3"])
{
anImage=[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"type3.png" ofType:nil]];
}
else if([[annotation title] isEqualToString:@"type4"])
{
anImage=[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"type4.png" ofType:nil]];
}
MKAnnotationView *anView=(MKAnnotationView*)[mapView
dequeueReusableAnnotationViewWithIdentifier:@"annotation"];
if(anView==nil){
anView=[[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"annotation"] autorelease];
}
anView.image = anImage;
anView.annotation=annotation;
anView.canShowCallout=YES;
if(tag==0){
anView.rightCalloutAccessoryView=[UIButton buttonWithType:UIButtonTypeDetailDisclosure];
}
return anView;
}
Thursday, July 8, 2010
pasing string value
mixing SQL qurey + user input in one string
NSString* SQL_statement = [NSString stringWithFormat:@"SELECT * FROM wateat_tbl where name like '%%%@%%' or desc like '%%%@%%'", myStringPrt2, myStringPrt2];
const char *sqlStatement = [SQL_statement UTF8String]; // string to char need UTF8
Thursday, July 1, 2010
add images to nav bar
UIImageView *imageView = [[UIImageView alloc] initWithImage: image];
self.navigationItem.titleView = imageView;
Wednesday, June 30, 2010
pointer to integer
ur doin it wrong
if(count == 2) {
the right way
if([count intValue] == 2) {
Tuesday, June 29, 2010
saving xml locally
NSURL *url = [[NSURL alloc] initWithString:@"http:/xml.php"];
NSData *data = [NSData dataWithContentsOfURL:url];
NSString *applicationDocumentsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *storePath = [applicationDocumentsDir stringByAppendingPathComponent:@"icellxml.php"];
NSLog(@"new xml %@",storePath );
// write to file atomically (using temp file)
[data writeToFile:storePath atomically:TRUE];
NSLog(@" saved data is %@",storePath);
// NSData *data = [NSData dataWithBytes:ptr length:len]; to get back
////////////////////////////
NSFileManager *fileManager = [NSFileManager defaultManager];
if([fileManager fileExistsAtPath:storePath]) {
//open it and read it
NSLog(@"data file found. reading into memory");
} else {
NSLog(@"no file found. creating empty array");
}
////////// PULLING DATA IN OFFLINE MODE
NSFileManager *fileManager = [NSFileManager defaultManager];
if([fileManager fileExistsAtPath:storePath]) {
//open it and read it
NSLog(@"data file found. reading into memory");
NSURL *urla = [[[NSURL alloc] init] fileURLWithPath:storePath];
storePath = [storePath stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSString *urlb = [[NSURL fileURLWithPath:storePath] absoluteString];
NSArray *paths = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory,
NSUserDomainMask, YES
);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSURL *urlc = [NSURL fileURLWithPath:[documentsDirectory
stringByAppendingString:@"/icellxml1.php" ]];
NSLog(@"welcome %@",documentsDirectory );
NSLog(@"werkgwkerwekwegrw %@",urlc);
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:urlc];
//Initialize the delegate.
XMLParser *parser = [[XMLParser alloc] initXMLParser];
//Set delegate
[xmlParser setDelegate:parser];
//Start parsing the XML file.
BOOL success = [xmlParser parse];
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
if(success)
{
NSLog(@"BINGO");
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
else
{
NSLog(@"DAM DAM DAM !!!");
}
Monday, June 28, 2010
pull data from string
NSLog(@" GEO MAP is %@",locationString);
//NSString *myData = [NSString stringWithContentsOfFile:myPath];
NSArray *posArray = [[NSArray alloc] initWithArray:[locationString componentsSeparatedByString:@","]];
NSLog(@"count = %d",[posArray count]);
NSLog(@"first one = %f", [[posArray objectAtIndex:2] floatValue]);
NSLog(@"2nd one = %f", [[posArray objectAtIndex:3] floatValue]);
output will be 3,4
getting lati and longi
NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv",
theAddress];
NSString *locationString = [[[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:urlString]] autorelease];
Sunday, June 27, 2010
saving and retreving data
NSUserDefaults *saveDict = [NSUserDefaults standardUserDefaults];
[saveDict setObject:geotext forKey:@"keyToLookupString"];
// getting dic
NSUserDefaults *gete = [NSUserDefaults standardUserDefaults];
// getting an NSString
NSString *myString = [gete stringForKey:@"keyToLookupString"];
NSLog(@" this output is %@",myString);
Thursday, June 24, 2010
sending image and text to server
NSString *uMessage=myTextView.text;
NSData *imageData = UIImageJPEGRepresentation(imageView.image, .9);
NSString *post =[[NSString alloc] initWithFormat:@"&title=%@&message=%@&imagedetal=%@",uTitle,uMessage,imageData];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
///////////////////////////
// setting up the URL to post to
NSString *urlString = @"http:/_post.php";
// setting up the request object now
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"];
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
NSMutableData *body = [NSMutableData data];
//[body appendData:[[NSString stringWithFormat:@"%@", post] dataUsingEncoding:NSUTF8StringEncoding]];
// title
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"title\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:uTitle] dataUsingEncoding:NSUTF8StringEncoding]]; // title
// message
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"message\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:uMessage] dataUsingEncoding:NSUTF8StringEncoding]]; // title
/// image
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"image\"; filename=\"ipodfile.jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"action=upload&"] dataUsingEncoding:NSUTF8StringEncoding]];
///
[body appendData:[NSData dataWithData:imageData]];
[request setHTTPBody:body];
NSString *msgLength = [NSString stringWithFormat:@"%d", [body length]];
[request addValue: msgLength forHTTPHeaderField:@"Content-Length"];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(returnString);
[self alert];
sending lattitude and long to server
NSString *post = [NSString stringWithFormat:@"Latitude=%@&Longitude=%@¬e=%@",
[self urlEncodeValue:latitude],
[self urlEncodeValue:longitude],
[self urlEncodeValue:note],
];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:@"http://www.mypositionserver.com/position.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
Tuesday, June 22, 2010
Monday, June 21, 2010
camera control on iphne
this is the link for camera demo
Thursday, June 17, 2010
Base 64 implementation
//// class name Base64.h
#import
@interface Base64 : NSObject {
}
+ (void) initialize;
+ (NSString*) encode:(const uint8_t*) input length:(NSInteger) length;
+ (NSString*) encode:(NSData*) rawBytes;
+ (NSData*) decode:(const char*) string length:(NSInteger) inputLength;
+ (NSData*) decode:(NSString*) string;
@end
///
/// class name Base64.m
#import "Base64.h"
@implementation Base64
#define ArrayLength(x) (sizeof(x)/sizeof(*(x)))
static char encodingTable[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
static char decodingTable[128];
+ (void) initialize {
if (self == [Base64 class]) {
memset(decodingTable, 0, ArrayLength(decodingTable));
for (NSInteger i = 0; i < ArrayLength(encodingTable); i++) {
decodingTable[encodingTable[i]] = i;
}
}
}
+ (NSString*) encode:(const uint8_t*) input length:(NSInteger) length {
NSMutableData* data = [NSMutableData dataWithLength:((length + 2) / 3) * 4];
uint8_t* output = (uint8_t*)data.mutableBytes;
for (NSInteger i = 0; i < length; i += 3) {
NSInteger value = 0;
for (NSInteger j = i; j < (i + 3); j++) {
value <<= 8;
if (j < length) {
value |= (0xFF & input[j]);
}
}
NSInteger index = (i / 3) * 4;
output[index + 0] = encodingTable[(value >> 18) & 0x3F];
output[index + 1] = encodingTable[(value >> 12) & 0x3F];
output[index + 2] = (i + 1) < length ? encodingTable[(value >> 6) & 0x3F] : '=';
output[index + 3] = (i + 2) < length ? encodingTable[(value >> 0) & 0x3F] : '=';
}
return [[[NSString alloc] initWithData:data
encoding:NSASCIIStringEncoding] autorelease];
}
+ (NSString*) encode:(NSData*) rawBytes {
return [self encode:(const uint8_t*) rawBytes.bytes length:rawBytes.length];
}
+ (NSData*) decode:(const char*) string length:(NSInteger) inputLength {
if ((string == NULL) || (inputLength % 4 != 0)) {
return nil;
}
while (inputLength > 0 && string[inputLength - 1] == '=') {
inputLength--;
}
NSInteger outputLength = inputLength * 3 / 4;
NSMutableData* data = [NSMutableData dataWithLength:outputLength];
uint8_t* output = data.mutableBytes;
NSInteger inputPoint = 0;
NSInteger outputPoint = 0;
while (inputPoint < inputLength) {
char i0 = string[inputPoint++];
char i1 = string[inputPoint++];
char i2 = inputPoint < inputLength ? string[inputPoint++] : 'A'; /* 'A' will decode to \0 */
char i3 = inputPoint < inputLength ? string[inputPoint++] : 'A';
output[outputPoint++] = (decodingTable[i0] << 2) | (decodingTable[i1] >> 4);
if (outputPoint < outputLength) {
output[outputPoint++] = ((decodingTable[i1] & 0xf) << 4) | (decodingTable[i2] >> 2);
}
if (outputPoint < outputLength) {
output[outputPoint++] = ((decodingTable[i2] & 0x3) << 6) | decodingTable[i3];
}
}
return data;
}
+ (NSData*) decode:(NSString*) string {
return [self decode:[string cStringUsingEncoding:NSASCIIStringEncoding] length:string.length];
}
@end
/// main class import base64.h
and here we go
//
NSString *post1 =[NSString stringWithFormat:@"%@|%@",tfUsername.text, tfPassword.text];
NSData *data = [post1 dataUsingEncoding: NSASCIIStringEncoding];
NSData *encryptedData = [post1 dataUsingEncoding: NSASCIIStringEncoding];
[Base64 initialize];
NSString *b64EncStr1=[Base64 encode:encryptedData];
NSLog(@"Base 64 encoded = %@",b64EncStr1);
NSScanner
NSString *a =serverOutput2;// ur string
NSString *checkForValidity;
NSScanner *scanner = [NSScanner scannerWithString:a];
[scanner scanUpToString:@"
[scanner scanString:@"
[scanner scanUpToString:@"
NSLog(@"%@",checkForValidity);
Wednesday, May 5, 2010
Back to basics
# @implementation shows a new keyword: super
* Similar to Java, Objective-C only has one parent class.
* Accessing it's super constructor is done through [super init] and this is required for proper inheritance.
* This returns an instance which you assign to another new keyword, self. Self is similar to this in Java and C++.
# if ( self ) is the same as if ( self != nil ) to make sure that the super constructor successfully returned a new object. nil is Objective-C's form of NULL from C/C++. This is gotten from including NSObject.
# After you've initialized the varialbes, you return yourself with return self;
# The deafult constructor is -(id) init;
# Constructors in Objective-C are technically just "init" methods, they aren't a special construct like they are in C++ and Java.
+ is used. The + denotes a class level function.
http://www.otierney.net/objective-c.html#downloading
http://www.atomicobject.com/pages/The+Objective+C+Language
Interface is a class which contain all unimplemented methods( can call them also abstract methods)
We will implement these methods in derived class of interface.
ie an interface is actually not inherited but implemented.
We cann't create an instance of interface object instead we can create an instance for derived class objects
//////////////////
classes in Objective-C provide the basic construct for encapsulating some data with the actions that operate on that data. An object is a runtime instance of a class,
Protocols and Delegates
Protocols and Delegates
A protocol declares methods that can be implemented by any class. Protocols are not classes themselves. They simply define an interface that other objects are responsible for implementing. When you implement the methods of a protocol in one of your classes, your class is said to conform to that protocol.
Protocols are used frequently to specify the interface for delegate objects. A delegate object is an object that acts on behalf of, or in coordination with, another object. The best way to look at the interplay between protocols, delegates, and other objects is to look at an example.
The UIApplication
class implements the required behavior of an application. Instead of forcing you to subclass UIApplication
to receive simple notifications about the current state of the application, the UIApplication
class delivers those notifications by calling specific methods of its assigned delegate object. An object that implements the methods of the UIApplicationDelegate
protocol can receive those notifications and provide an appropriate response.
The declaration of a protocol looks similar to that of a class interface, with the exceptions that protocols do not have a parent class and they do not define instance variables. The following example shows a simple protocol declaration with one method:
@protocol MyProtocol |
- (void)myProtocolMethod; |
@end |
Thursday, April 22, 2010
In the MVC design pattern, the model layer consists of objects that represent the data your application manages. The objects in this layer should be organized in the way that makes the most sense for the data. External interactions with model objects occur through a well-defined set of interfaces, whose job is to ensure the integrity of the underlying data at all times.
The view layer defines the presentation format and appearance of the application. This layer consists of your application’s windows, views, and controls. The views can be standard system views or custom views you create. You configure these views to display the data from your model objects in an appropriate way. In addition, your view objects need to generate notifications in response to events and user interactions with that data.
The controller layer acts as the bridge between the model and view layers. It receives the notifications generated by the view layer and uses them to make the corresponding changes in the data model. Similarly, if the data in the data layer changes for other reasons (perhaps because of some internal computation loop), it notifies an appropriate controller object, which then updates the views.
EXP--
View is just a GUI so when user interact with GUI (controller) and modify data indirectly(which is a model)
MVC
In the MVC design pattern, the model layer consists of objects that represent the data your application manages. The objects in this layer should be organized in the way that makes the most sense for the data. External interactions with model objects occur through a well-defined set of interfaces, whose job is to ensure the integrity of the underlying data at all times.
The view layer defines the presentation format and appearance of the application. This layer consists of your application’s windows, views, and controls. The views can be standard system views or custom views you create. You configure these views to display the data from your model objects in an appropriate way. In addition, your view objects need to generate notifications in response to events and user interactions with that data.
The controller layer acts as the bridge between the model and view layers. It receives the notifications generated by the view layer and uses them to make the corresponding changes in the data model. Similarly, if the data in the data layer changes for other reasons (perhaps because of some internal computation loop), it notifies an appropriate controller object, which then updates the views.
Wednesday, April 21, 2010
Revolute joint
var bodyDef2:b2BodyDef;
var boxDef2:b2PolygonDef;
bodyDef2 = new b2BodyDef();
bodyDef2.position.Set(26, 12.5);
//bodyDef2.angle = -.5;
boxDef2 = new b2PolygonDef();
boxDef2.SetAsBox(3, .1);//7
boxDef2.friction = .1;
boxDef2.density = 12.1;
/*
*/
body2 = m_world.CreateBody(bodyDef2);
body2.CreateShape(boxDef2);
body2.SetMassFromShapes();
/////////////// body 20
var bodyDef20:b2BodyDef;
var boxDef20:b2PolygonDef;
bodyDef20 = new b2BodyDef();
bodyDef20.position.Set(23, 12.5);
//bodyDef2.angle = -.5;
boxDef20 = new b2PolygonDef();
boxDef20.SetAsBox(.5, .1);//7
boxDef20.friction = .1;
boxDef20.density = 0;
/*
*/
body20 = m_world.CreateBody(bodyDef20);
body20.CreateShape(boxDef20);
body20.SetMassFromShapes();
///////////////////
var rjdDef:b2RevoluteJointDef = new b2RevoluteJointDef();
rjdDef.Initialize(body2, body20, body20.GetWorldCenter() );
rjdDef.enableLimit=true;
// rjdDef.maxMotorTorque=16600.0;
//rjdDef.motorSpeed=500.0;
rjdDef.enableMotor=true;
rjdDef.lowerAngle=-0.18*3.14
rjdDef. upperAngle=0.25*3.14
rev1 = m_world.CreateJoint(rjdDef) as b2RevoluteJoint;
/////// center is static and other is dynamic .. and you can play with dynamic///
somthing like this
body2.SetAngularVelocity(ang);
Wednesday, April 14, 2010
cocos2d updates implementation
Thursday, April 8, 2010
Particle effect Implementation
emitter = [[CCParticleMeteor alloc] init];
emitter = [[CCParticleFire alloc] init];
emitter.texture = [[CCTextureCache sharedTextureCache] addImage:@"fire.png"];
emitter.position = ccp(location.x,location.y);
emitter.life = 0.2f;
emitter.duration = 0.3f;
emitter.lifeVar = 0.3f;
[self addChild:emitter];
Monday, March 29, 2010
Wednesday, March 10, 2010
Animate sprite
[self addChild:sheet99 z:4 tag:kTagSpriteSheet];
sprite99 = [sheet99 createSpriteWithRect:CGRectMake(0,0,300,400)];//32 * idx,32 * idy,32,32
sprite99.position=ccp(4,14);
[sheet99 addChild:sprite99 z:7];
CCAnimation *animation = [CCAnimation animationWithName:@"dance" delay:.1f ];
[animation addFrameWithTexture:sheet99.texture rect:CGRectMake(-121,0,242,400)];//-121
[animation addFrameWithTexture:sheet99.texture rect:CGRectMake(0, 0, 242,400)];//0,0
id action = [CCAnimate actionWithAnimation:animation];
// Run the animation
//id repeatAction = [CCRepeat actionWithAction:action times:100];
// To repeat forever, use this
id repeatAction = [CCRepeatForever actionWithAction:action];
[sprite99 runAction:repeatAction];
body and updation
bodyDef9c8.type =b2_staticBody;
bodyDef9c8.position.Set(9,9);//
//bodyDef9c8.angle=-58;
//bodyDef.userData = sprite;
b2Body* body9c8;
//= world->CreateBody(&groundBodyDef5);
body9c8 = world->CreateBody(&bodyDef9c8);
// Define another box shape for our dynamic body.
b2PolygonShape dynamicBox9c8;
dynamicBox9c8.SetAsBox(1.7f, .1f);//These are mid points for our 1m box
// Define the dynamic body fixture.
b2FixtureDef fixture9c8;
//fixture99.userData = @"Box";
fixture9c8.shape = &dynamicBox9c8;
fixture9c8.density = 0;
fixture9c8.friction = 0.3f;
fixture9c8.restitution=1.1f;
body9c8->CreateFixture(&fixture9c8);
#####################
update
###################
body0->SetTransform (b2Vec2(8,12),0);//target replaced by setXform
Friday, February 19, 2010
Tuesday, February 9, 2010
stack in objc
float32 y=1.0f;
// Define the static body.
//Set up a 1m squared box in the physics world
b2BodyDef bodyDef;
bodyDef.type = b2_staticBody;
bodyDef.position.Set(x, y);
b2Body *body = world->CreateBody(&bodyDef);
// Define another box shape for our static body.
b2PolygonShape staticBox;
staticBox.SetAsBox(.5f, .5f);//These are mid points for our 1m box
// Define the static body fixture.
b2FixtureDef fixtureDef;
fixtureDef.shape = &staticBox;
fixtureDef.density = 1.0f;
fixtureDef.friction = 0.3f;
body->CreateFixture(&fixtureDef);
}
Thursday, January 7, 2010
create body IPhone
b2BodyDef groundBodyDef2;
groundBodyDef2.position.Set(8, 9);
groundBodyDef2.angle=28;
//groundBox2.restitution=1;
b2Body* groundBody2 = world->CreateBody(&groundBodyDef2);
b2PolygonShape groundBox2;
groundBox2.SetAsBox(1.5f, .1f);//SetAsEdge(b2Vec2(3,3), b2Vec2(3,0));
groundBody2->CreateFixture(&groundBox2);
// triangle
b2BodyDef polyBodyDef; // Define the body
polyBodyDef.position.Set(p.x/PTM_RATIO, p.y/PTM_RATIO);
b2Body *poly = world->CreateBody(&polyBodyDef);
b2PolygonShape polyShapeDef; // Define the shape
//polyShapeDef.SetAsBox(1.0f, 1.0f);
polyShapeDef.m_vertexCount = 3;
polyShapeDef.m_vertices[0].Set(-1, 0);
polyShapeDef.m_vertices[1].Set(1, 0);
polyShapeDef.m_vertices[2].Set(0, 1.5);
b2FixtureDef polyFixtureDef; // Define the fixture
polyFixtureDef.shape = &polyShapeDef;
polyFixtureDef.density = 1.0f;
polyFixtureDef.friction = 0.3f;
poly->CreateFixture(&polyFixtureDef);