Search Results

Search found 15831 results on 634 pages for 'cocos2d iphone'.

Page 480/634 | < Previous Page | 476 477 478 479 480 481 482 483 484 485 486 487  | Next Page >

  • My UITableView has duplicated rows

    - by Mark
    Im not sure why, but my UITableView, which isnt anything fancy, is showing repeating rows when it shouldnt be. It seems that the rows that get added when the user scrolls (i.e. the rows that are off the screen to start with) are getting the data for the wrong row index. Its almost like when a new cell is de-queued, it's using a cell that 'was' used, but wasn't cleaned up correctly. Do you need to 'clean up' cells that are de-queue so that new cells dont use cells that are already created? my code is as below: - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CustomCellIdentifier = @"CustomCellIdentifier"; MyDayCell *cell = (MyDayCell *)[tableView dequeueReusableCellWithIdentifier: CustomCellIdentifier]; if (cell == nil) { NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MyDayCell" owner:self options:nil]; for (id oneObject in nib) if ([oneObject isKindOfClass:[MyDayCell class]]) cell = (MyDayCell *)oneObject; } NSUInteger section = [indexPath section]; NSUInteger row = [indexPath row]; NSArray *thisSectionItems = (NSArray*)[self.listData objectForKey: [[NSNumber alloc] initWithInt:section]]; MyDayDetails *rowData = [thisSectionItems objectAtIndex:row]; //setup my cells data here... return cell; } Is there anything wrong with this code? has anyone seen anything like this before?

    Read the article

  • Tab-Bar not hiding on all views

    - by Sheehan Alam
    I have a tab-bar controller that loads a RootView. The RootView has 4 buttons that will load a UITableView I don't want my tab-bar to be visible in the RootView so I added the following code: -(void)viewDidLoad{ self.hidesBottomBarWhenPushed = YES; } When I initially load the app the tab-bar doesn't appear, but when I click on a button, and go back to the RootView the tab-bar still appears. I have tried placing this code in viewWillAppear and other application lifecycle methods but no luck.

    Read the article

  • How to add UIview over a ViewController and its NavigationController

    - by Roxee Man
    I have a ViewController with a NavigationController and I want to add a translucent UIView with some Buttons over the ViewController when I press a ViewController button, the problem is that I can not put the UIView over the NavigationBar. How can I solve this? This is my code ( Very simple) -(void)setOpacityView { opacityVw = [[UIView alloc] initWithFrame:self.view.bounds]; opacityVw.backgroundColor = [[UIColor alloc] initWithRed:0.0 green:0.0 blue:0.0 alpha:0.8]; WPCustomButton *closeBtn = [[WPCustomButton alloc] initWithFrame:CGRectMake(230, 10, 80, 20)]; [closeBtn setTitle:@"Close X" forState:UIControlStateNormal]; [closeBtn setBackgroundColor:[UIColor clearColor]]; [closeBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; [closeBtn addTarget:self action:@selector(closeView) forControlEvents:UIControlEventTouchUpInside]; [opacityVw addSubview:closeBtn]; } // --------------------------------------------------------------------------------------------------------------------- #pragma mark - Button methods -(void) closeView { [opacityVw removeFromSuperview]; } -(void)setProfileImage { [self setOpacityView]; [self.view addSubview:opacityVw]; }

    Read the article

  • Objective-C Basic class related question, retaining the value of a specific object using a class fil

    - by von steiner
    Members, scholars, code gurus. My background is far from any computer programming thus my question may seems basic and somewhat trivial to you. Nevertheless it seems that I can't put my head around it. I have googled and searched for the answer, just to get myself confused even more. With that, I would kindly ask for a simple explanation suitable for a non technical person such as myself and for other alike arriving to this thread. I have left a comment with the text "Here is the issue" below, referring to my question. // character.h #import <Foundation/Foundation.h> @interface character : NSObject { NSString *name; int hitPoints; int armorClass; } @property (nonatomic,retain) NSString *name; @property int hitPoints,armorClass; -(void)giveCharacterInfo; @end // character.m #import "character.h" @implementation character @synthesize name,hitPoints,armorClass; -(void)giveCharacterInfo{ NSLog(@"name:%@ HP:%i AC:%i",name,hitPoints,armorClass); } @end // ClassAtLastViewController.h #import <UIKit/UIKit.h> @interface ClassAtLastViewController : UIViewController { } -(void)callAgain; @end // ClassAtLastViewController.m #import "ClassAtLastViewController.h" #import "character.h" @implementation ClassAtLastViewController - (void)viewDidLoad { //[super viewDidLoad]; character *player = [[character alloc]init]; player.name = @"Minsc"; player.hitPoints = 140; player.armorClass = 10; [player giveCharacterInfo]; [player release]; // Up until here, All peachy! [self performSelector:@selector(callAgain) withObject:nil afterDelay:2.0]; } -(void)callAgain{ // Here is the issue, I assume that since I init the player again I loss everything // Q1. I loss all the data I set above, where is it than? // Q2. What is the proper way to implement this character *player = [[character alloc]init]; [player giveCharacterInfo]; } Many thanks in advance, Kindly remember that my background is more related to Salmons breeding than to computer code, try and lower your answer to my level if it's all the same to you.

    Read the article

  • How do you create an invisible button that covers the whole screen including navigation controller?

    - by Jim
    I have a simple tableview that navigates to a detailed view with a navigation controller. In the detailed view I need to create a button which when pressed isolates all other buttons displayed on the screen including the navigation controller back button. I know how to get the invisible button to cover most of buttons the screen but I can't get it to cover the navigation controller back button as this has been created in the parent view. How do I pop it over the top of the navigation controller from the detail view?

    Read the article

  • Help with why my app crashed?

    - by Moshe
    I'm writing an iPad app that is a "kiosk" app. The iPad should be hanging on the wall and the app should just run. I did a test, starting the app last night (Friday, December 31) and letting it run. This morning, when I woke up, it was not running. I just checked the iPad's console and I can't figure out why it crashed. The iPad was plugged in and so the battery is not the issued. I did disable the idleTimer in my application delegate. The app was seen running as late as midnight last night. I would like to note that my app acts as a Bluetooth server through Game Kit and large portion of the console output is occupied by bluetooth status messages. When I opened the iPad, the app was paused and there was a system alert which prompted me to check an "Expiring Provisioning Profile". I tapped "dismiss" and the alert went away. The app crashed about a second after I dismissed the system alert. Any ideas how I can diagnose this problem? Why would my app crash? Here is my iPad's Console log, as copied from Xcode's organizer. Edit: A bit of Googling lead me to this site which says that alert views cause the app to lose focus. Could that be involved? What can I do to fix the problem? EDIT2: My Crash log describes the situation as: Application Specific Information: appname failed to resume in time Elapsed total CPU time (seconds): 10.010 (user 8.070, system 1.940), 100% CPU Elapsed application CPU time (seconds): 9.470, 95% CPU

    Read the article

  • NSInvocation: object does not implement methodSignatureForSelector

    - by Sam V
    I have this weird crash that only happens when running the app on the device (doesn't happen in the Simulator). It seems like the problem surfaces out of nowhere, as I haven't changed anything on that particular class. I had the very same issue a few days ago, and I ended up fixing it by duplicating the class, renaming it, and changing the referenced class — I haven't changed a single bit of code. So I'm trying to understand why it's doing this. I've read somewhere that usually you get this console error when the object isn't a subclass of NSObject (but it is!). Here's the exact console error message: *** NSInvocation: warning: object 0x679e0 of class 'FFProximityPickerView' does not implement methodSignatureForSelector: -- trouble ahead *** NSInvocation: warning: object 0x679e0 of class 'FFProximityPickerView' does not implement doesNotRecognizeSelector: -- abort And then it crashes. I'd be very thankful for anyone who can help me on this.

    Read the article

  • UITableView superClass for delegate?

    - by fuzzygoat
    A quick question, I am setting a delegate for UITableView and I have a question regarding setting the delegate and dataSource properties. I have noticed that the properties for delegate and dataSource are not available, I was thinking that adopting the protocols would make them available. But I am now thinking that I maybe have the superclass for my delegate class wrong. Currently I have: -(void)viewDidLoad { TestDelegate *tempDelegate = [[TestDelegate alloc] init]; [self setMyDelegate:tempDelegate]; // setDelegate // setDataSource [tempDelegate release]; [super viewDidLoad]; } My interface for TestDelegate looks like: @interface TestDelegate : NSObject <UITableViewDelegate, UITableViewDataSource> { NSArray *listData; int myCounter; } Can I ask if the above should be: @interface TestDelegate : UITableView <UITableViewDelegate, UITableViewDataSource> { NSArray *listData; int myCounter; } gary EDIT: I think it might be right as NSObject, I have a viewtableView in IB, thats what I will need to connect my delegate class to. I added to tableView in IB so maybe I just need to make it available in Xcode.

    Read the article

  • Objective-C subclasses question

    - by Johannes Jensen
    I have a class called Level, which is a subclass of NSObject. Then I have a class called Level_1_1 which is a subclass of Level. Is it allowed to type like Level* aLevel = [Level_1_1 alloc]; instead of Level_1_1* theLevel = [Level_1_1 alloc]; ? :) I try it and I don't get any warnings, just wondering if it's okay to do?

    Read the article

  • ObjectiveC - Releasing objects added as parameters

    - by NobleK
    Ok, here goes. Being a Java developer I'm still struggling with the memory management in ObjectiveC. I have all the basics covered, but once in a while I encounter a challenge. What I want to do is something which in Java would look like this: MyObject myObject = new MyObject(new MyParameterObject()); The constructor of MyObject class takes a parameter of type MyParameterObject which I initiate on-the-fly. In ObjectiveC I tried to do this using following code: MyObject *myObject = [[MyObject alloc] init:[[MyParameterObject alloc] init]]; However, running the Build and Analyze tool this gives me a "Potential leak of an object" warning for the MyParameter object which indeed occurs when I test it using Instruments. I do understand why this happens since I am taking ownership of the object with the alloc method and not relinquishing it, I just don't know the correct way of doing it. I tried using MyObject *myObject = [[MyObject alloc] init:[[[MyParameterObject alloc] init] autorelease]]; but then the Analyze tool told me that "Object sent -autorelease too many times". I could solve the issue by modifying the init method of MyParameterObject to say return [self autorelease]; in stead of just return self;. Analyze still warnes about a potential leak, but it doesn't actually occur. However I believe that this approach violates the convention for managing memory in ObjectiveC and I really want to do it the right way. Thanx in advance.

    Read the article

  • Releasing the keyboard stops shake events. Why?

    - by Moshe
    1) How do I make a UITextField resign the keyboard and hide it? The keyboard is in a dynamically created subview whose superview looks for shake events. Resigning first responder seems to break the shake event handler. 2) how do you make the view holding the keyboard transparent, like see through glass? I have seen this done before. This part has been taken care of thanks guys. As always, code samples are appreciated. I've added my own to help explain the problem. EDIT: Basically, - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event; gets called in my main view controller to handle shaking. When a user taps on the "edit" icon (a pen, in the bottom of the screen - not the traditional UINavigationBar edit button), the main view adds a subview to itself and animates it on to the screen using a custom animation. This subview contains a UINavigationController which holds a UITableView. The UITableView, when a cell is tapped on, loads a subview into itself. This second subview is the culprit. For some reason, a UITextField in this second subview is causing problems. When a user taps on the view, the main view will not respond to shakes unless the UITextField is active (in editing mode?). Additional info: My Motion Event Handler: - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event { NSLog(@"%@", [event description]); SystemSoundID SoundID; NSString *soundFile = [[NSBundle mainBundle] pathForResource:@"shake" ofType:@"aif"]; AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:soundFile], &SoundID); AudioServicesPlayAlertSound(SoundID); [self genRandom:TRUE]; } The genRandom: Method: /* Generate random label and apply it */ -(void)genRandom:(BOOL)deviceWasShaken{ if(deviceWasShaken == TRUE){ decisionText.text = [NSString stringWithFormat: (@"%@", [shakeReplies objectAtIndex:(arc4random() % [shakeReplies count])])]; }else{ SystemSoundID SoundID; NSString *soundFile = [[NSBundle mainBundle] pathForResource:@"string" ofType:@"aif"]; AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:soundFile], &SoundID); AudioServicesPlayAlertSound(SoundID); decisionText.text = [NSString stringWithFormat: (@"%@", [pokeReplies objectAtIndex:(arc4random() % [pokeReplies count])])]; } } shakeReplies and pokeReplies are both NSArrays of strings. One is used for when a certain part of the screen is poked and one is for when the device is shaken. The app will randomly choose a string from the NSArray and display onscreen. For those of you who work graphically, here is a diagram of the view hierarchy: Root View -> UINavigationController -> UITableView -> Edit View -> Problem UITextfield

    Read the article

  • Problem of Loading Xib with Tab bar Controller

    - by riteshkumar1905
    Hello, I am using two xib one without tab bar and another with tab bar controller. In starting i load the xib without tab bar-navigation bar then flow are working.But if i load a xib with tab bar Controller -navigation bar then our all view slide bellow and half tab bar are not showing. So Please give some code how to use tab bar controller while pushing from another Xib Thanks Ritesh Kumar

    Read the article

  • Can get members, but not count of NSMutableArray

    - by Curyous
    I'm filling an NSMutableArray from a CoreData call. I can get the first object, but when I try to get the count, the app crashes with Program received signal: “EXC_BAD_ACCESS”. How can I get the count? Here's the relevant code - I've put a comment on the line where it crashes. - (void)viewDidLoad { [super viewDidLoad]; managedObjectContext = [[MySingleton sharedInstance] managedObjectContext]; if (managedObjectContext != nil) { charactersRequest = [[NSFetchRequest alloc] init]; charactersEntity = [NSEntityDescription entityForName:@"Character" inManagedObjectContext:managedObjectContext]; [charactersEntity retain]; [charactersRequest setEntity:charactersEntity]; [charactersRequest retain]; NSError *error; characters = [[managedObjectContext executeFetchRequest:charactersRequest error:&error] mutableCopy]; if (characters == nil) { NSLog(@"Did not get results for characters: %@", error.localizedDescription); } else { [characters retain]; NSLog(@"Found some character(s)."); Character* character = (Character *)[characters objectAtIndex:0]; NSLog(@"Name of first one: %@", character.name); NSLog(@"Found %@ character(s).", characters.count); // Crashes on this line with - Program received signal: “EXC_BAD_ACCESS”. } } } And previous declarations from the header file: @interface CrowdViewController : UITableViewController { NSManagedObjectContext *managedObjectContext; NSFetchRequest *charactersRequest; NSEntityDescription *charactersEntity; NSMutableArray *characters; } I'm a bit perplexed and would really appreciate finding out what is going on.

    Read the article

  • Mapkit +closest annotation

    - by danskcollignon
    Hi all, I am trying to devellopp an app showing the nearest poi to the users location. My app is now capable of: showing a map (Mapkit) with 110 annotations and the user's location. Furthermore, I have a TableView at the bottom of my screen, to choose between the different annotations. However, they're listed by number, and not by proximity to the user's location, which is my wish. My research have led me to think that I should use CLLocation for getting the user's location. I then have really no idea on how to do it next, using getDistancefrom. My annotations are stored on SecondViewController.m, using this form: -(void)loadOurAnnotations { CLLocationCoordinate2D workingCoordinate; workingCoordinate.latitude = XX.XXXXX; workingCoordinate.longitude = XX.XXXXX; SecondViewAnnotation *POI1 = [[SecondViewAnnotation alloc] initWithCoordinate:workingCoordinate]; [POI1 setTitle:@"POI"]; [POI1 setSubtitle:@"StreetName"]; [POI1 setAnnotationType:SecondViewAnnotationTypePOI1]; [mapView addAnnotation:POI1]; , and so on to POI110. Could someone please give me a clue? I'm a total newbie! Thank you in advance for your help,

    Read the article

  • Where I should call [object release] ?

    - by mongeta
    Hello, I've subclassed some UITextField and added some custom properties. In a UITableViewController, in the ViewDiDLoad I init them, and in the cellForRowAtIndexPath I add them to the cell with [cell.contentView addSubview:customTextField]; Each cell has a different customTextField as all of them are very different. Where I should call the [customTextField release] ? After I add them to the cell view ? If for example I call [self.tableView reloadData] my customTextField are going to be added again to the cell, so maybe I should change my approach in doing this ? thanks for the orientation ... regards, r.

    Read the article

  • How to detect application préference changes.

    - by Raphael Pinto
    I created a Settings.bundle in my app where the user can change some properties like font size. It works. But when I leave my App, and I change my setting, I don't know how I can get notified of the change. For the moment, I create a function call each time a view is loaded that check for app settings. But I wonder if there is an other and proper way to do this.

    Read the article

  • Drawing single pixel in Quartz

    - by wwrob
    I have an array of CGPoints, and I'd like to fill the whole screen with colours, the colour of each pixel depending on the total distance to each of the points in the array. The natural way to do this is to, for each pixel, compute the total distance, and turn that into a colour. Questions follow: 1) How can I colour a single pixel in Quartz? I've been thinking of making 1 by 1 rectangles. 2) Are there better, more efficient ways to achieve this effect?

    Read the article

  • Memory Allocation increases in didSelectRowAtIndexPath

    - by mongeta
    Hello, I'm testing my App and in a very simple view, each time a tap on a UITableView row, my allocation overall bytes get higher and higher and never go downs. I don't have any special code there, so I created a new project from scratch with a very simple view, force one section and just three rows. In the didSelectRowAtIndexPath code do nothing, and fire it with instruments and memory allocation and, the memory goes up with every cell selection ... Is this normal behaviour ? thanks, regards, m.

    Read the article

  • How do you delete a core data entry from the detail view?

    - by Sam
    I am working with an app similar to apple's core data recipes sample code. I want to be able to delete the entry from the detail view, much like apple's contacts app. The code below is deleting the 1st entry and not the selected entry. Not sure what I am doing wrong. NSIndexPath *indexPath = [myTableView indexPathForSelectedRow]; NSManagedObjectContext *context = [fetchedResultsController managedObjectContext]; [context deleteObject:[fetchedResultsController objectAtIndexPath:indexPath]]; [myTableView reloadData];

    Read the article

  • I'm trying to pass a string from my first ViewController to my second ViewController but it returns NULL

    - by Dashony
    In my first view controller I have 3 input fields each of them take the user input into and saves it into a string such as: address, username and password as NSUserDefaults. This part works fine. In my second view controller I'm trying to take the 3 strings from first controller (address, username and password) create a html link based on the 3 strings. I've tried many ways to access the 3 strings with no luck, the result I get is NULL. Here is my code: //.h file - first view controller with the 3 input fields CamSetup.h #import <UIKit/UIKit.h> @interface CamSetup : UIViewController <UITextFieldDelegate> { NSString * address; NSString * username; NSString * password; IBOutlet UITextField * addressField; IBOutlet UITextField * usernameField; IBOutlet UITextField * passwordField; } -(IBAction) saveAddress: (id) sender; -(IBAction) saveUsername: (id) sender; -(IBAction) savePassword: (id) sender; @property(nonatomic, retain) UITextField *addressField; @property(nonatomic, retain) UITextField *usernameField; @property(nonatomic, retain) UITextField *passwordField; @property(nonatomic, retain) NSString *address; @property(nonatomic, retain) NSString *username; @property(nonatomic, retain) NSString *password; @end //.m file - first view controller CamSetup.m #import "CamSetup.h" @interface CamSetup () @end @implementation CamSetup @synthesize addressField, usernameField, passwordField, address, username, password; -(IBAction) saveAddress: (id) sender { address = [[NSString alloc] initWithFormat:addressField.text]; [addressField setText:address]; NSUserDefaults *stringDefaultAddress = [NSUserDefaults standardUserDefaults]; [stringDefaultAddress setObject:address forKey:@"stringKey1"]; NSLog(@"String [%@]", address); } -(IBAction) saveUsername: (id) sender { username = [[NSString alloc] initWithFormat:usernameField.text]; [usernameField setText:username]; NSUserDefaults *stringDefaultUsername = [NSUserDefaults standardUserDefaults]; [stringDefaultUsername setObject:username forKey:@"stringKey2"]; NSLog(@"String [%@]", username); } -(IBAction) savePassword: (id) sender { password = [[NSString alloc] initWithFormat:passwordField.text]; [passwordField setText:password]; NSUserDefaults *stringDefaultPassword = [NSUserDefaults standardUserDefaults]; [stringDefaultPassword setObject:password forKey:@"stringKey3"]; NSLog(@"String [%@]", password); } - (void)viewDidLoad { [addressField setText:[[NSUserDefaults standardUserDefaults] objectForKey:@"stringKey1"]]; [usernameField setText:[[NSUserDefaults standardUserDefaults] objectForKey:@"stringKey2"]]; [passwordField setText:[[NSUserDefaults standardUserDefaults] objectForKey:@"stringKey3"]]; [super viewDidLoad]; } @end //.h second view controller LiveView.h #import <UIKit/UIKit.h> #import "CamSetup.h" @interface LiveView : UIViewController { NSString *theAddress; NSString *theUsername; NSString *thePassword; CamSetup *camsetup; //here is an instance of the first class } @property (nonatomic, retain) NSString *theAddress; @property (nonatomic, retain) NSString *theUsername; @property (nonatomic, retain) NSString *thePassword; @end //.m second view LiveView.m file #import "LiveView.h" @interface LiveView () @end @implementation LiveView @synthesize theAddress, theUsername, thePassword; - (void)viewDidLoad { [super viewDidLoad]; theUsername = camsetup.username; //this is probably not right? NSLog(@"String [%@]", theUsername); //resut here is NULL NSLog(@"String [%@]", camsetup.username); //and here NULL as well } @end

    Read the article

  • Retain count = 0 in other function? memory-management problem?

    - by rdesign
    Hey guys, I declared a NSMutableArray in the header-file with: NSMutableArray *myMuArr; and @property (nonatomic, retain) NSMutableArray *myMuArr; In the .m file I've got a delegate from an other class: -(void)didGrabData:(NSArray*)theArray { self.myMuArr = [[[NSMutableArray alloc] initWithArray:myMuArr]retain]; } If I want to access the self.myMuArr in cellForRowAtIndexPath it's empty (I checked the retain count of the array and it's 0) What am I doing wrong? Of course it's released in the dealloc, no where else. I would be very thankfull for any help :0)

    Read the article

  • How to push text from one UITextfield to another UITextfield in the next View? And back!?

    - by Chrizzz
    an Hi, I have an UITextField in one view, UITextField A in View A. And I have another in view B, UITextField B in View B. I use a Navigation Controller Bar to switch between the views. The UITextFields are properties and connected Outlets of both views A and B. On my view A there is an "Options"-button which pushes view B. So when you are typing in Textfield A, I would like the same text to appear in Textfield B. When you edit TextField B and you go back to view A (via the "Title View A"-button in de navigation bar), I would like the same text to re-appear in Textfield A. I expected this to be easy. But I can't get it working. I tried: ViewBController *controller = [[ViewBController alloc] initWithNibName:@"ViewBController" bundle:nil]; controller.TextFieldA.text = TextFieldB.text But nothing appeared in view B. And how do I get back? I dont want to use NSUserdefaults because I would have to remove the values also.

    Read the article

  • Using Core Data Concurrently and Reliably

    - by John Topley
    I'm building my first iOS app, which in theory should be pretty straightforward but I'm having difficulty making it sufficiently bulletproof for me to feel confident submitting it to the App Store. Briefly, the main screen has a table view, upon selecting a row it segues to another table view that displays information relevant for the selected row in a master-detail fashion. The underlying data is retrieved as JSON data from a web service once a day and then cached in a Core Data store. The data previous to that day is deleted to stop the SQLite database file from growing indefinitely. All data persistence operations are performed using Core Data, with an NSFetchedResultsController underpinning the detail table view. The problem I am seeing is that if you switch quickly between the master and detail screens several times whilst fresh data is being retrieved, parsed and saved, the app freezes or crashes completely. There seems to be some sort of race condition, maybe due to Core Data importing data in the background whilst the main thread is trying to perform a fetch, but I'm speculating. I've had trouble capturing any meaningful crash information, usually it's a SIGSEGV deep in the Core Data stack. The table below shows the actual order of events that happen when the detail table view controller is loaded: Main Thread Background Thread viewDidLoad Get JSON data (using AFNetworking) Create child NSManagedObjectContext (MOC) Parse JSON data Insert managed objects in child MOC Save child MOC Post import completion notification Receive import completion notification Save parent MOC Perform fetch and reload table view Delete old managed objects in child MOC Save child MOC Post deletion completion notification Receive deletion completion notification Save parent MOC Once the AFNetworking completion block is triggered when the JSON data has arrived, a nested NSManagedObjectContext is created and passed to an "importer" object that parses the JSON data and saves the objects to the Core Data store. The importer executes using the new performBlock method introduced in iOS 5: NSManagedObjectContext *child = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType]; [child setParentContext:self.managedObjectContext]; [child performBlock:^{ // Create importer instance, passing it the child MOC... }]; The importer object observes its own MOC's NSManagedObjectContextDidSaveNotification and then posts its own notification which is observed by the detail table view controller. When this notification is posted the table view controller performs a save on its own (parent) MOC. I use the same basic pattern with a "deleter" object for deleting the old data after the new data for the day has been imported. This occurs asynchronously after the new data has been fetched by the fetched results controller and the detail table view has been reloaded. One thing I am not doing is observing any merge notifications or locking any of the managed object contexts or the persistent store coordinator. Is this something I should be doing? I'm a bit unsure how to architect this all correctly so would appreciate any advice.

    Read the article

< Previous Page | 476 477 478 479 480 481 482 483 484 485 486 487  | Next Page >