<rp id="yy9qd"></rp>

    <em id="yy9qd"><ruby id="yy9qd"></ruby></em>

      <rp id="yy9qd"><object id="yy9qd"></object></rp>

    1. <th id="yy9qd"></th>

      ?

      iOS培訓之數據保持(四)

      作者:達內 更新時間:2013-12-30 11:45 來源:未知 點擊:
      根視圖控制器: 1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 // Do any additional setup after loading the view from its nib. 5 6 BIDAppDelegate *appDelegate=[[UIApplication sharedApplication] delegate];
      根視圖控制器:
       1 - (void)viewDidLoad
       2 {
       3     [super viewDidLoad];
       4     // Do any additional setup after loading the view from its nib.
       5     
       6     BIDAppDelegate *appDelegate=[[UIApplication sharedApplication] delegate];
       7     NSManagedObjectContext *context=[appDelegate managedObjectContext];
       8     NSEntityDescription *entityDecription=[NSEntityDescription entityForName:@"Line" inManagedObjectContext:context];//關聯實體與上下文
       9     NSFetchRequest *request=[[NSFetchRequest alloc] init];
      10     [request setEntity:entityDecription];//設置抓取實體
      11     NSError *error;
      12     /*因為要抓取實體中的所有項,所以沒有設置抓取屬性*/
      13     NSArray *objects=[context executeFetchRequest:request error:&error];//從實體中抓取到上下文,且上下文進行跟蹤對象
      14     if(objects==nil)
      15         NSLog(@"There was an error!");
      16     for (NSManagedObject *object in objects)
      17     {
      18         NSNumber *lineNum=[object valueForKey:@"lineNum"]; //讀取抓取出的第n個對象的lineNum屬性
      19         NSString *lineText=[object valueForKey:@"lineText"];
      20         
      21         NSString *fieldname=[[NSString alloc] initWithFormat: @"line%d",[lineNum integerValue]];
      22         UITextField *field=[self valueForKey:fieldname];
      23         field.text=lineText;
      24     }
      25     
      26     UIApplication *app=[UIApplication sharedApplication];
      27     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillResignActive:) name:UIApplicationWillResignActiveNotification object:app];
      28 }
      29  
      30 -(void)applicationWillResignActive:(NSNotification *)notification
      31 {
      32     BIDAppDelegate *appDelegate=[[UIApplication sharedApplication] delegate];
      33     NSManagedObjectContext *context=[appDelegate managedObjectContext];
      34     NSError *error;
      35     
      36     for (int i=1; i<=4; i++) {
      37         NSString *fieldname=[[NSString alloc] initWithFormat:@"line%d",i];
      38         UITextField *field=[self valueForKey:fieldname];
      39         
      40         NSFetchRequest *request=[[NSFetchRequest alloc] init];
      41         
      42         NSEntityDescription *entityDescritption=[NSEntityDescription entityForName:@"Line" inManagedObjectContext:context];
      43         [request setEntity:entityDescritption];
      44         
      45         NSPredicate *predicate=[NSPredicate predicateWithFormat:@"(lineNum=%d)",i];
      46         [request setPredicate:predicate];
      47         
      48         NSArray *objects=[context executeFetchRequest:request error:&error];//抓取上下文中的托管對象集
      49         NSManagedObject *theLine=nil;
      50         
      51         if(objects==nil)
      52             NSLog(@"There was an error!");
      53         if([objects count]>0)
      54         {
      55             /*因設置了抓取屬性,每次按抓取屬性在實體抓取的上下文中的托管對象集里都只有一個對應的托管對象(在此例對應抓取屬性的只有一個)*/
      56             theLine=[objects objectAtIndex:0];//取托管對象
      57         }
      58         else
      59         {
      60             /*在實體中插入新的托管對象,且返回該對象和放入上下文中跟蹤*/
      61             theLine=[NSEntityDescription insertNewObjectForEntityForName:@"Line" inManagedObjectContext:context];
      62         }
      63         [theLine setValue:[NSNumber numberWithInt:i] forKey:@"lineNum"];
      64         [theLine setValue:field.text forKey:@"lineText"];
      65     }
      66     [context save:&error];//跟蹤結束,保存進實體
      67 } 
       應用程序委托: 
       1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
       2 {
       3     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
       4     // Override point for customization after application launch.
       5     self.rootcontroller=[[BIDViewController alloc] initWithNibName:@"BIDViewController" bundle:nil];
       6     UIView *rootView=self.rootcontroller.view;
       7     CGRect viewFrame=rootView.frame;
       8     viewFrame.origin.y+=[UIApplication sharedApplication].statusBarFrame.size.height;
       9     rootView.frame=viewFrame;
      10     [self.window addSubview:rootView];
      11     self.window.backgroundColor = [UIColor whiteColor];
      12     [self.window makeKeyAndVisible];
      13     return YES;
      14 } 
      沙盒中的Documents文件夾生成Core_Data_Persistence.sqlite文件(未知直讀方法)。 
      其它例子
      5.應用程序設置
      程序使用該方法保持的數據,可在iphone的settings中查看和設置。
      添加setting.bundle,在root.plist中配置好要保存的數據項和settings中顯示的分組界面。
      標簽:

      相關閱讀

      最新開班信息

      3G-IOS軟件工程師就業班
      北京潘家園中心 開課日期:9月29日
      3G-IOS軟件工程師就業班
      北京潘家園中心 開課日期:9月29日
      3G-IOS軟件工程師周末班
      北京潘家園中心 開課日期:9月29日
      3G-IOS軟件工程師周末班
      北京潘家園中心 開課日期:9月29日