1.我制作了一个app现在想让他上线,酷代酷不考虑运营宣传等,源码源码源码仅仅是酷代酷让他上线,然后可以就可以,源码源码源码花多少钱?
2.å¦ä½ä½¿ç¨NSFetchedResultsController
我制作了一个app现在想让他上线,酷代酷不考虑运营宣传等,源码源码源码飞狐宝塔线源码仅仅是酷代酷让他上线,然后可以就可以,源码源码源码花多少钱?
软件开发公司排行榜
极其流行,酷代酷同样也是源码源码源码竞争力极其大的一种商业模式。虽然国内软件开发公司都发展壮大起来了,酷代酷但是源码源码源码成本boll指标源码各地软件开发公司的实力及资质仍然参差不齐。下面为大家介绍下近期国内软件开发公司的酷代酷排名汇总。
1:华盛恒辉科技有限公司
上榜理由:华盛恒辉是源码源码源码一家专注于高端软件定制开发服务和高端建设的服务机构,致力于为企业提供全面、酷代酷系统的开发制作方案。在开发、建设到运营推广领域拥有丰富经验,我们通过建立对目标客户和用户行为的分析,整合高质量设计和极其新技术,为您打造创意十足、有价值的企业品牌。
在军工领域,跟庄进退指标源码合作客户包括:中央军委联合参谋(原总参)、中央军委后勤保障部(原总后)、中央军委装备发展部(原总装)、装备研究所、战略支援、军事科学院、研究所、航天科工集团、中国航天科技集团、中国船舶工业集团、中国船舶重工集团、妖股公式源码第一研究所、训练器材所、装备技术研究所等单位。
在民用领域,公司大力拓展民用市场,目前合作的客户包括中国中铁电气化局集团、中国铁道科学研究院、济南机务段、东莞轨道交通公司、京港地铁、中国国电集团、准备拉升指标源码电力科学研究院、水利部、国家发改委、中信银行、华为公司等大型客户。
2:五木恒润科技有限公司
上榜理由:五木恒润拥有员工多人,技术人员占%以上,是一家专业的军工信息化建设服务单位,为军工单位提供完整的信息化解决方案。公司设有股东会、董事会、监事会、工会等上层机构,同时设置总经理职位,由总经理管理公司的具体事务。公司下设有研发部、质量部、市场部、财务部、人事部等机构。公司下辖成都研发中心、西安研发中心、沈阳办事处、天津办事处等分支机构。
3、浪潮
浪潮集团有限公司是国家首批认定的规划布局内的重点软件企业,中国著名的企业管理软件、分行业ERP及服务供应商,在咨询服务、IT规划、软件及解决方案等方面具有强大的优势,形成了以浪潮ERP系列产品PS、GS、GSP三大主要产品。是目前中国高端企业管理软件领跑者、中国企业管理软件技术领先者、中国最大的行业ERP与集团管理软件供应商、国内服务满意度最高的管理软件企业。
4、德格Dagle
德格智能SaaS软件管理系统自德国工业4.0,并且结合国内工厂行业现状而打造的一款工厂智能化信息平台管理软件,具备工厂ERP管理、SCRM客户关系管理、BPM业务流程管理、
OMS订单管理等四大企业业务信息系统,不仅满足企业对生产进行简易管理的需求,并突破局域网应用的局限性,同时使数据管理延伸到互联网与移动商务,不论是内部的管理应用还是外部的移动应用,都可以在智能SaaS软件管理系统中进行业务流程的管控。
5、Manage
高亚的产品 (8Manage) 是美国经验中国研发的企业管理软件,整个系统架构基于移动互联网和一体化管理设计而成,其源代码编写采用的是最为广泛应用的
Java / J2EE 开发语言,这样的技术优势使 8Manage
可灵活地按需进行客制化,并且非常适用于移动互联网的业务直通式处理,让用户可以随时随地通过手机apps进行实时沟通与交易。
å¦ä½ä½¿ç¨NSFetchedResultsController
ä½ æ¯ä¸æ¯å·²ç»å¿è®°äºä»¥å讲è¿ä»ä¹å¢ï¼æ们æ¥å¤ä¹ ä¸ä¸ï¼å¨ç¬¬ä¸ç¯æç¨ä¸ï¼ãiOSæç¨ï¼Core Dataæ°æ®æä¹ æ§åå¨åºç¡æç¨ãä¸æ们讲äºå¦ä½ä¸ºä¸ä¸ªiOSç¨åºå建ä¸ä¸ªCore Dataçæ°æ®æ¨¡ååæµè¯çæ¹æ³ï¼è¿ææ们è¿æè¿ä¸ªæ°æ®æ¨¡åä½ä¸ºæ°æ®æºè¿æ¥å°äºä¸ä¸ªè¡¨è§å¾ä¸ã å¨ç¬¬äºç¯æç¨ï¼ãiOSæç¨ï¼å¦ä½ä½¿ç¨Core Data â é¢å è½½åå¼å ¥æ°æ®ãï¼æ们讲äºå¦ä½è§£æä¸åæ ¼å¼çæ°æ®æ件å°ä¸ä¸ªCore Dataéç¨çSQliteæ°æ®åºä¸ï¼è¿æå¦ä½å°è¿ä¸ªæ°æ®åºç§»æ¤å°æ们çiOS项ç®ä¸å»ï¼å¥½è®©æ们çåºç¨æä¸äºåå§æ°æ®ã ä½ å¯ä»¥ä»è¿éä¸è½½ç¬¬äºé¨åçæºç ã为ä»ä¹è¦ä½¿ç¨ NSFetchedResultsControllerï¼ å°ç®å为æ¢ï¼æ们就åå¨ä½¿ç¨SQLite3çæ¹æ³ä¸æ ·ï¼å 为æ¬è´¨ä¸Core Dataå°±æ¯å¨æä½SQLiteæ°æ®åºï¼ä½æ¯æ们åç代ç æ¯ç´æ¥ä½¿ç¨SQLiteæ´å°ï¼æ们使ç¨åç§æ°æ®åºåè½ä¹æ´å®¹æã ä½æ¯ï¼æ们è¿æä¸ä¸ªå¾å¥½ç¨çCore Dataç¹æ§æ²¡æç¨ä¸ï¼è¿ä¸ªç¹æ§è½å¤å¾å¤§ç¨åº¦ä¸çæé«æ们ç¨åºçæ§è½ï¼ä»å°±æ¯ï¼NSFetchedResultsControllerãç°å¨å¨æ们çä¾åç¨åºä¸ï¼æ们é½æ¯ä¸ä¸åå°ææçæ°æ®å ¨é¨å è½½è¿è§å¾ï¼å¯¹äºæ们çè¿ä¸ªåºç¨èè¨ï¼è¿ä¹è®¸æ¯å¯ä»¥æ¥åçï¼ä½æ¯å¦æä¸ä¸ªåºç¨æ大éçæ°æ®ï¼è½½å ¥é度就ä¼åå¾å¾æ ¢ï¼ä¹ä¼ç»ç¨æ·ä½éªé æå½±åã å¨çæ³çæ åµä¸ï¼æ们åªè½½å ¥ç¨æ·æ£å¨æµè§çé£ä¸é¨åçæ°æ®ï¼å¹¸è¿çæ¯ï¼è¹æå®æ¹å·²ç»æä¾äºä¸ä¸ªè¿æ ·åçæ¹æ³ï¼å°±æ¯NSFetchedResultsControllerã æ以ï¼å±ä»¬å æå¼ FBCDMasterViewController.hï¼æä¹åçfailedBankInfosï¼è¿ä¸ªNSArrayæ°ç»éªçµï¼å å ¥ä¸ä¸ªNSFetchedResultsController 代æ¿å®ï¼@interface FBCDMasterViewController : UITableViewController @property (nonatomic,strong) NSManagedObjectContext* managedObjectContext; @property (nonatomic, retain) NSFetchedResultsController *fetchedResultsController; @endå¨FBCDMasterViewController.mçsynthesizeé¨åï¼å é¤ä»¥åçfailedBankInfos synthesize声æï¼å¹¶ä¸å å ¥ï¼@synthesize fetchedResultsController = _fetchedResultsController;å¦ä¸ä¸ª NSFetchedResultsController å¾é ·çç¹æ§æ¯ä½ å¯ä»¥å¨ViewDidUnloadä¸å°å®éæ°å£°æ为nilãè¿æå³çè¿ä¸ªæ¹æ³æä¸ä¸ªèªå¨çå å管çæºå¶ï¼ä¹å°±æ¯è¯´å½å 容ä¸å¨å±å¹ä¹ä¸åï¼å ¶å ç¨å åä¼èªå¨è¢«æ¸ 空ãè¦å®æè¿ä¸åï¼ä½ æéåçå°±æ¯å¨ViewDidUnloadä¸å°å®å£°æ为空ã - (void)viewDidUnload { self.fetchedResultsController = nil; }好äºï¼ç°å¨å°äºæ趣çé¨åäºï¼æ们å¼å§å建åå¾çæ°æ®çæ§å¶å¨ãé¦å æ们声æä¸ä¸ªå±æ§ï¼è®©å®éçç¨åºçè¿è¡æ£æµåå¾æ°æ®æ¯å¦åå¨ï¼å¦æä¸åå¨å°±åé ä¹ã å¨æ件ç头é¨å å ¥ä»¥ä¸ä»£ç ï¼ - (NSFetchedResultsController *)fetchedResultsController { if (_fetchedResultsController != nil) { return _fetchedResultsController; } NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"FailedBankInfo" inManagedObjectContext:managedObjectContext]; [fetchRequest setEntity:entity]; NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"details.closeDate" ascending:NO]; [fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]]; [fetchRequest setFetchBatchSize:]; NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"]; self.fetchedResultsController = theFetchedResultsController; _fetchedResultsController.delegate = self; return _fetchedResultsController; }è¿æ®µä»£ç åæä»¬å¨ viewDidLoad æ¹æ³ä¸ä½¿ç¨çå¾æ¯ç¸ä¼¼ï¼å建ä¸ä¸ªfetch请æ±ï¼å°FailedBankInfoç©ä½å¼åºççï¼ä½æ¯ä»ç¶æä¸äºæ°çä¸è¥¿æ们è¦è®¨è®ºã é¦å ï¼å½æ们使ç¨NSFetchedResultsController,ï¼æä»¬å¿ é¡»è®¾ç½®ä¸ä¸ªæ°æ®åç±»å¨æ¥èµç»fetch请æ±ï¼æ°æ®åç±»å¨å°±æ¯æ们åè¯Core Dataæ们å¸æå¼å ¥çæ°æ®è¢«è¤¥åå¨åçæ¹æ³ã è¿ç§æ°æ®åç±»å¨åå¨çå¿ è¦å°±å¨äºå®ä¸ä» è½å¤ç¼æææè¿åçå±æ§åæ°æ®ï¼è¿å¯ä»¥ç¼æä¸ä¹ç¸å ³çææå±æ§åæ°æ®ï¼å°±å¥½åä¸ä¸ªå¤©æç人å¨åè¿äºäºæ ä¸æ ·ãå¦ææ们æ³è¦æ ¹æ®FailedBankDtailsä¸çclose dateè¿ä¸ªå±æ§ç¼ææ°æ®ï¼ä½å´æ³è¦æ¥æ¶FailedBankInfoä¸çæææ°æ®ï¼Core Dataéè¿è¿ä¸ªç¹æ§å°±å¯ä»¥å®æè¿æ ·çäºæ ã ä¸ä¸ä¸ªå£°æååçéè¦ï¼å°±æ¯è®¾ç½®åå¾çæ°æ®çç¼å²å¼çæ大å¼ï¼è¿æ£æ¯æ们å¨è¿ä¸ªåºæ¯ä¸æ³è¦ä½¿ç¨è¿ç§ç¹æ§çåå ï¼è¿æ ·çè¯ï¼fetchedæ¹æ³å°±ä¼èªå¨åå¾è®¾ç½®çå¼çæ°æ®é¡¹ç®ï¼ä¹åæå½æ们åä¸æ¥ççæ¶åç¨åºå°±ä¼èªå¨åå¾åç§æ°æ®ã å½æ们设置好è¿ä¸ªfetchçç¼å²å¼çæ¶åï¼æ们就å®æäºå建 NSFetchedRequestController 并ä¸å°å®ä¼ éç»äºfetch请æ±ï¼ä½æ¯è¿ä¸ªæ¹æ³å ¶å®è¿æ以ä¸å 个åæ°ï¼å¯¹äºmanaged object å 容ï¼æ们å¼ä¼ éå 容ãsection name key pathå 许æ们æç §éç§å±æ§æ¥åç»æåæ°æ®å 容ãæ件åçç¼ååååºè¯¥è¢«ç¨æ¥å¤çä»»ä½éå¤çä»»å¡ï¼æ¯å¦è¯´è®¾ç½®åç»æè æåæ°æ®çã ç°å¨æ们已ç»å®å ¨å建好äºä¸ä¸ªåå¾é¨åæ°æ®çæ¹æ³ï¼æ们ä¸é¢ä¿®æ¹ä¸ä¸ä»¥å使ç¨æ°æ®å å ¥æ°æ®çæ¹æ³ï¼è®©å®ä½¿ç¨æ们åå¾çæ°æ®ã - (void)viewDidLoad { [super viewDidLoad]; NSError *error; if (![[self fetchedResultsController] performFetch:&error]) { // Update to handle the error appropriately. NSLog(@"Unresolved error %@, %@", error, [error userInfo]); exit(-1); // Fail } self.title = @"Failed Banks"; } æ们å¨è¿éæ¥æä½æ们ç fetchedResultsController 并ä¸æ§è¡performFetch æ¹æ³æ¥åå¾ç¼å²ç第ä¸æ¹æ°æ®ã ä¹åï¼æ´æ°numberOfRowsInSectionæ¹æ³ - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { id sectionInfo = [[_fetchedResultsController sections] objectAtIndex:section]; return [sectionInfo numberOfObjects]; }æ´æ°cellForRowAtIndexPath æ¹æ³ï¼ - (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath { FailedBankInfo *info = [_fetchedResultsController objectAtIndexPath:indexPath]; cell.textLabel.text = info.name; cell.detailTextLabel.text = [NSString stringWithFormat:@"%@, %@", info.city, info.state]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; // Set up the cell... [self configureCell:cell atIndexPath:indexPath]; return cell; }ç°å¨æ们å°ä¹åçé»è¾å为ä¸äºåå¼ç configureCell æ¹æ³ï¼æä»¬å¾ ä¼ä¼ç¨å°ãè¿ææåä¸ä»¶äºæ ï¼æ们éè¦ä¸º NSFetchedResultsController设置ä¸ä¸ªä»£çæ¹æ³ï¼å¥½æ¶æ¯æ¯é½æ模çï¼å ¶å®æ¯æä»appleå®æ¹çä¸ä¸ªä¾åç¨åºä¸copyè¿æ¥çï¼å°ä»¥ä¸æ¹æ³å å ¥å¨æ件çåºé¨ï¼ - (void)controllerWillChangeContent:(NSFetchedResultsController *)controller { // The fetch controller is about to start sending change notifications, so prepare the table view for updates. [self.tableView beginUpdates]; } - (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath { UITableView *tableView = self.tableView; switch(type) { case NSFetchedResultsChangeInsert: [tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade]; break; case NSFetchedResultsChangeDelete: [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; break; case NSFetchedResultsChangeUpdate: [self configureCell:[tableView cellForRowAtIndexPath:indexPath] atIndexPath:indexPath]; break; case NSFetchedResultsChangeMove: [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; [tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade]; break; } } - (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id )sectionInfo atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type { switch(type) { case NSFetchedResultsChangeInsert: [self.tableView insertSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade]; break; case NSFetchedResultsChangeDelete: [self.tableView deleteSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade]; break; } } - (void)controllerDidChangeContent:(NSFetchedResultsController *)controller { // The fetch controller has sent all current change notifications, so tell the table view to process all updates. [self.tableView endUpdates]; }ç°å¨ç¼è¯è¿è¡ä½ çåºç¨çè¯ï¼è¡¨é¢ä¸çèµ·æ¥åºè¯¥é½æ¯ä¸æ ·çï¼ä½æ¯å¦æä½ ççæ§å¶å°çè¯ï¼æ人çäºæ æ£å¨åçå¦ï¼ SELECT 0, t0.Z_PK FROM ZFAILEDBANKINFO t0 LEFT OUTER JOIN ZFAILEDBANKDETAILS t1 ON t0.ZDETAILS = t1.Z_PK ORDER BY t1.ZCLOSEDATE DESC total fetch execution time: 0.s for rows. SELECT 0, t0.Z_PK, t0.Z_OPT, t0.ZNAME, t0.ZSTATE, t0.ZCITY, t0.ZDETAILS FROM ZFAILEDBANKINFO t0 LEFT OUTER JOIN ZFAILEDBANKDETAILS t1 ON t0.ZDETAILS = t1.Z_PK WHERE t0.Z_PK IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ORDER BY t1.ZCLOSEDATE DESC LIMIT total fetch execution time: 0.s for rows. SELECT 0, t0.Z_PK, t0.Z_OPT, t0.ZNAME, t0.ZSTATE, t0.ZCITY, t0.ZDETAILS FROM ZFAILEDBANKINFO t0 LEFT OUTER JOIN ZFAILEDBANKDETAILS t1 ON t0.ZDETAILS = t1.Z_PK WHERE t0.Z_PK IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ORDER BY t1.ZCLOSEDATE DESC LIMIT total fetch execution time: 0.s for rows. ä½ å¯ä»¥çå°ï¼å¨èåï¼ NSFetchedResultsController æ£å¨ä» FailedBankInfoä¸åº¸ä¹å设置ç顺åºåå¾å¤§éçIDï¼æ¯æ¬¡åªç¼å²ä¸å®æ°éç项ç®ï¼å°±åæ们é¢æçä¸æ ·ã å¦æç´æ¥ä½¿ç¨SQLiteæ°æ®åºçè¯ï¼å°±ä¼æå¾å¤å·¥ä½è¦åäºï¼æ们ä½ä¸ä½¿ç¨Core Dataèçæ¶é´å¢ãä¹åçäºä»ä¹ï¼ è¿æ¯æå¶ä½å®æçä¾åç¨åºæºç ï¼æ¬¢è¿ä¸è½½ã