Note that there are some explanatory texts on larger screens.

plurals
  1. POMemory Management with code
    text
    copied!<p>hi i have 2 classes one is plisreader which is following code</p> <pre><code>// // PlistReader.h // NationalAntemsAndFlags // // Created by mac on 12/17/11. // Copyright (c) 2011 __MyCompanyName__. All rights reserved. // #import &lt;Foundation/Foundation.h&gt; #import "CountryClass.h" @interface PlistReader : NSObject { NSDictionary *temp; } @property (nonatomic,retain) NSDictionary *temp; -(int)LengthOfPList; -(id)GetTheObjectById:(NSString*)ObjId; -(void)initWithFileName:(NSString*)fileName; - (id)getCountryInfoById:(int)id; @end </code></pre> <p>//implementation file</p> <pre><code>// // PlistReader.m // NationalAntemsAndFlags // // Created by mac on 12/17/11. // Copyright (c) 2011 __MyCompanyName__. All rights reserved. // #import "PlistReader.h" @implementation PlistReader @synthesize temp; -(id)init { if(self =[super init]) { } return self; } -(void)initWithFileName:(NSString*)fileName { // Data.plist code // get paths from root direcory NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); // get documents path NSString *documentsPath = [paths objectAtIndex:0]; // get the path to our Data/plist file NSString *plistPath = [documentsPath stringByAppendingPathComponent:[fileName stringByAppendingString:@"plist"]]; // check to see if Data.plist exists in documents if (![[NSFileManager defaultManager] fileExistsAtPath:plistPath]) { // if not in documents, get property list from main bundle plistPath = [[NSBundle mainBundle] pathForResource:fileName ofType:@"plist"]; } // read property list into memory as an NSData object NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath]; NSString *errorDesc = nil; NSPropertyListFormat format; // convert static property liost into dictionary object temp =(NSDictionary *)[NSPropertyListSerialization propertyListFromData:plistXML mutabilityOption:NSPropertyListMutableContainersAndLeaves format:&amp;format errorDescription:&amp;errorDesc]; if (!temp) { NSLog(@"Error reading plist: %@, format: %d", errorDesc, format); } // assign values } -(int)LengthOfPList { return temp.count; } -(id)GetTheObjectById:(NSString*)ObjId { return [temp objectForKey:ObjId]; } -(id)getCountryInfoById:(int)objId { NSString *objsId = [NSString stringWithFormat:@"%d",objId]; NSDictionary *CDirectory = (NSDictionary*) [self GetTheObjectById:objsId]; int count = CDirectory.count; if(count&gt;0) { CountryClass *objCountry = [[CountryClass alloc] init]; objCountry.Name= [CDirectory objectForKey:@"Name"]; objCountry.LocationX =[[CDirectory objectForKey:@"PositionX"] intValue]; objCountry.LocationY = [[CDirectory objectForKey:@"PositionY"] intValue]; objCountry.ImageUrl = [CDirectory objectForKey:@"ImageUrl"]; objCountry.AnthemUrl =[CDirectory objectForKey:@"AnthemUrl"]; objCountry.ShortDetail =[CDirectory objectForKey:@"short Info"]; objCountry.completeDetails = [CDirectory objectForKey:@"Details"]; id ObjCountryInfo= objCountry; [objCountry release]; return ObjCountryInfo; } return NULL; } -(void)dealloc { NSLog(@"dealloc plist"); [temp release]; [super dealloc]; } @end </code></pre> <p>and the other is country class which has following code</p> <pre><code>// // CountryClass.h // NationalAntemsAndFlags // // Created by mac on 12/17/11. // Copyright (c) 2011 __MyCompanyName__. All rights reserved. // #import &lt;Foundation/Foundation.h&gt; @interface CountryClass : NSObject { NSString *Name ; NSString *ImageUrl; NSString *AnthemUrl; NSString *ShortDetail; NSString *completeDetails; int LocationX ; int LocationY ; } @property (nonatomic,retain) IBOutlet NSString *Name; @property (nonatomic,retain) IBOutlet NSString *ImageUrl; @property (nonatomic,retain) IBOutlet NSString *AnthemUrl; @property (nonatomic,retain) IBOutlet NSString *ShortDetail; @property (nonatomic,retain) IBOutlet NSString *completeDetails; @property (nonatomic) IBOutlet int LocationY; @property (nonatomic) IBOutlet int LocationX; @end </code></pre> <p>implementation file</p> <pre><code>// // CountryClass.m // NationalAntemsAndFlags // // Created by mac on 12/17/11. // Copyright (c) 2011 __MyCompanyName__. All rights reserved. // #import "CountryClass.h" @implementation CountryClass @synthesize Name,ImageUrl,AnthemUrl,ShortDetail,completeDetails,LocationX,LocationY; @end </code></pre> <p>so i called this in my scene like this</p> <pre><code>-(void)LoadData:(int)countryId { CId = countryId; PlistReader *pList =[[PlistReader alloc]init]; [pList initWithFileName:@"CountryDetails"]; CountryClass *objcountry = (CountryClass*) [pList getCountryInfoById:countryId]; NSString *tempLongDetails = objcountry.completeDetails; NSString *tempShortDetails = objcountry.ShortDetail; NSString *fileName = objcountry.ImageUrl ; CCSprite *flag ; NSString * fullPath = [[NSBundle mainBundle] pathForResource: [fileName stringByDeletingPathExtension] ofType: [fileName pathExtension] inDirectory: @"CountryFlags"]; NSLog(fullPath); if (fullPath) { UIImage *theImage = [UIImage imageWithContentsOfFile: fullPath]; if (theImage) { flag = [CCSprite spriteWithCGImage: [theImage CGImage] key: fileName]; // flag = [CCSprite spriteWithFile:fileName]; flag.position = ccp(200, 265); flag.scale = .255; } } TextViewTopFlagData = [[UITextView alloc]init]; TextViewTopFlagData.text = tempShortDetails; TextViewTopFlagData.frame = CGRectMake(260,17, 105, 75); TextViewTopFlagData.backgroundColor = [UIColor clearColor]; [TextViewTopFlagData setEditable:NO]; TextViewDownFlagData = [[UITextView alloc]init]; TextViewDownFlagData.text = tempLongDetails; TextViewDownFlagData.frame = CGRectMake(22,240, 242, 61); TextViewDownFlagData.backgroundColor = [UIColor clearColor]; [TextViewDownFlagData setEditable:NO]; [[[CCDirector sharedDirector]openGLView]addSubview:TextViewTopFlagData]; [[[CCDirector sharedDirector]openGLView]addSubview:TextViewDownFlagData]; [self addChild:flag]; } @end </code></pre> <p>but at the end of the function objcountry will be empty or out of reference can any one explain me that why this is happaning</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload