Iphone表视图的简单操作

1.创建一个Navigation—based—Application项目,这样Interface Builder中会自动生成一个Table View,然后将Search Bar拖放到表示图上,以我们要给表示图添加搜索功能,不要忘记将Search Bar的delegate连接到File‘s Owner项,然后将Search Bar与searchBar变量连接。

2.在Resources文件夹下创建一个Movies.plist文件,然后为该文件添加一些数据,如下图:


3.在.h头文件添加如下内容:

[cpp] view plaincopyprint?
  1. #import <UIKit/UIKit.h>   
  2.   
  3.   
  4. @interface MyTableView : UITableViewController <UISearchBarDelegate>{  
  5.     NSDictionary *movieTitles;  
  6.     NSArray *years;  
  7.       
  8.     IBOutlet UISearchBar *searchBar;  
  9.       
  10.     BOOL isSearchOn;  
  11.     BOOL canSelectRow;  
  12.       
  13.     //下面两个是搜索用到的两个变量   
  14.     NSMutableArray *listOfMovies;  
  15.     NSMutableArray *searchResult;  
  16. }  
  17. @property(nonatomic,retain) NSDictionary *movieTitles;  
  18. @property(nonatomic,retain)NSArray *years;  
  19. @property(nonatomic,retain)UISearchBar *searchBar;  
  20.   
  21. -(void)donSearching:(id)sender;  
  22. -(void)searchMoviesTableView;  
  23. @end  
#import <UIKit/UIKit.h>
@interface MyTableView : UITableViewController <UISearchBarDelegate>{
NSDictionary *movieTitles;
NSArray *years;
IBOutlet UISearchBar *searchBar;
BOOL isSearchOn;
BOOL canSelectRow;
//下面两个是搜索用到的两个变量
NSMutableArray *listOfMovies;
NSMutableArray *searchResult;
}
@property(nonatomic,retain) NSDictionary *movieTitles;
@property(nonatomic,retain)NSArray *years;
@property(nonatomic,retain)UISearchBar *searchBar;
-(void)donSearching:(id)sender;
-(void)searchMoviesTableView;
@end

4.当加载View窗口时,首先定位属性列表并把这个列表加载到listOfMovies中,然后将所有的年份提取到years中,然后添加搜索条并初始化搜索条用到的数据:

[cpp] view plaincopyprint?
  1. //读取Movies.plist文件的内容到变量里面   
  2. - (void)viewDidLoad  
  3. {  
  4.    NSString *path = [[NSBundle mainBundle]pathForResource:@"Movies" ofType:@"plist"];  
  5.     NSDictionary *dic = [[NSDictionary alloc]initWithContentsOfFile:path];  
  6.     self.movieTitles = dic;  
  7.     [dic release];  
  8.       
  9.     NSArray *array = [[self.movieTitles allKeys]sortedArrayUsingSelector:@selector(compare:)];  
  10.     self.years = array;  
  11.       
  12.     //下面两句是添加搜索条   
  13.     self.tableView.tableHeaderView = searchBar;  
  14.     self.searchBar.autocorrectionType = UITextAutocorrectionTypeYes;  
  15.       
  16.     //初始化listofmovies   
  17.     listOfMovies = [[NSMutableArray alloc]init];  
  18.     for (NSString *year in years) {  
  19.         NSArray *movies = [movieTitles objectForKey:year];  
  20.         for(NSString *title in movies){  
  21.             [listOfMovies addObject:title];  
  22.         }  
  23.     }  
  24.   
  25.     searchResult = [[NSMutableArray alloc]init];  
  26.       
  27.     isSearchOn = NO;  
  28.     canSelectRow = YES;  
  29.     [super viewDidLoad];  
  30.   
  31. }  
//读取Movies.plist文件的内容到变量里面
- (void)viewDidLoad
{
NSString *path = [[NSBundle mainBundle]pathForResource:@"Movies" ofType:@"plist"];
NSDictionary *dic = [[NSDictionary alloc]initWithContentsOfFile:path];
self.movieTitles = dic;
[dic release];
NSArray *array = [[self.movieTitles allKeys]sortedArrayUsingSelector:@selector(compare:)];
self.years = array;
//下面两句是添加搜索条
self.tableView.tableHeaderView = searchBar;
self.searchBar.autocorrectionType = UITextAutocorrectionTypeYes;
//初始化listofmovies
listOfMovies = [[NSMutableArray alloc]init];
for (NSString *year in years) {
NSArray *movies = [movieTitles objectForKey:year];
for(NSString *title in movies){
[listOfMovies addObject:title];
}
}
searchResult = [[NSMutableArray alloc]init];
isSearchOn = NO;
canSelectRow = YES;
[super viewDidLoad];
}

5.在自动生成的方法numberOfSectionsInTableView中添加如下代码,表示告诉表示图一共分多少节:

[cpp] view plaincopyprint?
  1. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView  
  2. {  
  3.     if (isSearchOn) {  
  4.         return 1;//如果正在搜索就只有一个section   
  5.     }  
  6.   else  
  7.     return [self.years count];  
  8. }  
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
if (isSearchOn) {
return 1;//如果正在搜索就只有一个section
}
else
return [self.years count];
}

6.在自动生成的方法tableView:numberOfRowsInSection:中添加如下代码,表示告诉表视图每一节显示多少行:

[cpp] view plaincopyprint?
  1. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section  
  2. {  
  3.   
  4.     if (isSearchOn) {  
  5.         return [searchResult count];  
  6.     }else{  
  7.     // Return the number of rows in the section.   
  8.     NSString *year = [self.years objectAtIndex:section];  
  9.     NSArray *movieSection = [self.movieTitles objectForKey:year];  
  10.     return [movieSection count];  
  11.     }  
  12. }  
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (isSearchOn) {
return [searchResult count];
}else{
// Return the number of rows in the section.
NSString *year = [self.years objectAtIndex:section];
NSArray *movieSection = [self.movieTitles objectForKey:year];
return [movieSection count];
}
}

7.在自动生成的方法tableView:cellForRowAtIndexPath:中添加如下代码,为每一行设值:

[cpp] view plaincopyprint?
  1. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  
  2. {  
  3.     static NSString *CellIdentifier = @"Cell";  
  4.       
  5.     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];  
  6.     if (cell == nil) {  
  7.         cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];  
  8.     }  
  9.       
  10.     if (isSearchOn) {  
  11.         NSString *cellValue = [searchResult objectAtIndex:indexPath.row];  
  12.         cell.textLabel.text = cellValue;  
  13.     }else{  
  14.     NSString *year = [self.years objectAtIndex:[indexPath section]];//得到当前行所在的section   
  15.     NSArray *movieSection = [self.movieTitles objectForKey:year];  
  16.     cell.textLabel.text = [movieSection objectAtIndex:[indexPath row]];  
  17.           
  18.         cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;  
  19.     }  
  20.       
  21.     //为每一行添加图片   
  22.     UIImage *image = [UIImage imageNamed:@"apple.jpeg"];  
  23.     cell.imageView.image = image;  
  24.       
  25.     return cell;  
  26. }  
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
if (isSearchOn) {
NSString *cellValue = [searchResult objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;
}else{
NSString *year = [self.years objectAtIndex:[indexPath section]];//得到当前行所在的section
NSArray *movieSection = [self.movieTitles objectForKey:year];
cell.textLabel.text = [movieSection objectAtIndex:[indexPath row]];
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
}
//为每一行添加图片
UIImage *image = [UIImage imageNamed:@"apple.jpeg"];
cell.imageView.image = image;
return cell;
}

8.实现tableView:titleForHeaderInSection:方法,将得到的年份作为每一节的Header:

[cpp] view plaincopyprint?
  1. //设置每个section的标题   
  2. -(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{  
  3.     NSString *year = [self.years objectAtIndex:section];  
  4.     if (isSearchOn) {  
  5.         return nil;  
  6.     }  
  7.     else{  
  8.     return year;  
  9.     }  
  10.     }  
//设置每个section的标题
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
NSString *year = [self.years objectAtIndex:section];
if (isSearchOn) {
return nil;
}
else{
return year;
}
}

9.为表格添加索引,只需要实现sectionIndexTitlesForTableView:方法,该方法返回每一节的Header数组:

[cpp] view plaincopyprint?
  1. //添加索引   
  2. -(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{  
  3.     if (isSearchOn)   
  4.         return nil;  
  5.     else  
  6.     return years;  
  7. }  
//添加索引
-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{
if (isSearchOn) 
return nil;
else
return years;
}

10.当用户点击搜索栏会促发searchBarTextDidBeginEditing:事件(UISearchBarDelegate协议中定义的一个方法,我们在.h头文件中实现了这个协议),在该方法中,向屏幕右上角添加一个Done按钮,当用户点击Done按钮时会调用doneSearching方法:

[cpp] view plaincopyprint?
  1. //搜索筐得到焦点后   
  2. -(void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar{  
  3.     isSearchOn = YES;  
  4.     canSelectRow = NO;  
  5.     self.tableView.scrollEnabled = NO;  
  6.     //添加down按钮及其点击方法   
  7.     self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(donSearching:)]autorelease];  
  8. }  
//搜索筐得到焦点后
-(void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar{
isSearchOn = YES;
canSelectRow = NO;
self.tableView.scrollEnabled = NO;
//添加down按钮及其点击方法
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(donSearching:)]autorelease];
}
11.doneSearching方法使得搜索栏移除了First Responder状态,因而会隐藏键盘,同时,通过调用表视图的reloadData方法重新加载表视图:

[cpp] view plaincopyprint?
  1. //点击down按钮后   
  2. -(void)donSearching:(id)sender{  
  3.     isSearchOn = NO;  
  4.     canSelectRow = YES;  
  5.     self.tableView.scrollEnabled = YES;  
  6.     self.navigationItem.rightBarButtonItem = nil;  
  7.       
  8.     [searchBar resignFirstResponder];  
  9.       
  10.     [self.tableView reloadData];  
  11. }  
//点击down按钮后
-(void)donSearching:(id)sender{
isSearchOn = NO;
canSelectRow = YES;
self.tableView.scrollEnabled = YES;
self.navigationItem.rightBarButtonItem = nil;
[searchBar resignFirstResponder];
[self.tableView reloadData];
}

12.当用户在搜索栏中输入时,输入的每个字符都会触发searchBar:textDidChange:事件,只要搜索栏中有一个字符,就会调用searchMoviesTableView方法:

[cpp] view plaincopyprint?
  1. //搜索筐里面的文字改变后   
  2. -(void) searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{  
  3.     if ([searchText length]>0) {  
  4.         isSearchOn = YES;  
  5.         canSelectRow = YES;  
  6.         self.tableView.scrollEnabled = YES;  
  7.         [self searchMoviesTableView];//调用搜索方法   
  8.     }  
  9.     else{  
  10.         isSearchOn = NO;  
  11.         canSelectRow = NO;  
  12.         self.tableView.scrollEnabled = NO;  
  13.     }  
  14.     [self.tableView reloadData];  
  15. }  
//搜索筐里面的文字改变后
-(void) searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
if ([searchText length]>0) {
isSearchOn = YES;
canSelectRow = YES;
self.tableView.scrollEnabled = YES;
[self searchMoviesTableView];//调用搜索方法
}
else{
isSearchOn = NO;
canSelectRow = NO;
self.tableView.scrollEnabled = NO;
}
[self.tableView reloadData];
}

13.searchMoviesTableView方法会搜索listOfMovies数组,通过NSString类的rangeOfString:options:方法,使用特定的字符串对每个名称进行搜索,返回的结果是一个nsRange对象,如果长度大于0就表示有一个匹配结果,将它添加到searchResult书组中:

[cpp] view plaincopyprint?
  1. //自定义的搜索方法,得到搜索结果   
  2. -(void)searchMoviesTableView{  
  3.     [searchResult removeAllObjects];  
  4.     for (NSString *str in listOfMovies) {  
  5.         NSRange titleResultsRange = [str rangeOfString:searchBar.text options:NSCaseInsensitiveSearch];  
  6.         if (titleResultsRange.length > 0) {  
  7.             [searchResult addObject:str];  
  8.         }  
  9.     }  
  10. }  
//自定义的搜索方法,得到搜索结果
-(void)searchMoviesTableView{
[searchResult removeAllObjects];
for (NSString *str in listOfMovies) {
NSRange titleResultsRange = [str rangeOfString:searchBar.text options:NSCaseInsensitiveSearch];
if (titleResultsRange.length > 0) {
[searchResult addObject:str];
}
}
}

14.当用户点击键盘上的Search按钮时,就会调用如下方法:

[cpp] view plaincopyprint?
  1. -(void) searchBarSearchButtonClicked:(UISearchBar *)searchBar{  
  2.     [self searchMoviesTableView];  
  3. }  
-(void) searchBarSearchButtonClicked:(UISearchBar *)searchBar{
[self searchMoviesTableView];
}

15.新建一个新的文件,该文件在后面定义,点击表格的某一行后就会调转到该页面去并将点击的那一样的名称传过去,要想做到这一点必须实现如下方法:

[cpp] view plaincopyprint?
  1. //点击table某一行跳转页面   
  2. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath  
  3. {  
  4.     MyTableViewOneMessage *mytm = [[MyTableViewOneMessage alloc]initWithNibName:@"MyTableViewOneMessage" bundle:nil];  
  5.       
  6.     NSString *year = [self.years objectAtIndex:[indexPath section]];  
  7.     NSArray *movieSection = [self.movieTitles objectForKey:year];  
  8.     NSString *movieTitle = [movieSection objectAtIndex:[indexPath row]];  
  9.     NSString *message = [[NSString alloc]initWithFormat:@"%@",movieTitle];  
  10.     mytm.message = message;  
  11.     [self.navigationController pushViewController:mytm animated:YES];  
  12.     [mytm release];  
  13. }  
//点击table某一行跳转页面
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
MyTableViewOneMessage *mytm = [[MyTableViewOneMessage alloc]initWithNibName:@"MyTableViewOneMessage" bundle:nil];
NSString *year = [self.years objectAtIndex:[indexPath section]];
NSArray *movieSection = [self.movieTitles objectForKey:year];
NSString *movieTitle = [movieSection objectAtIndex:[indexPath row]];
NSString *message = [[NSString alloc]initWithFormat:@"%@",movieTitle];
mytm.message = message;
[self.navigationController pushViewController:mytm animated:YES];
[mytm release];
}

16.新添加的页面很简单,主要用来测试表格的点击事件,导航然后显示传过来的字符串:

Interface Builder中添加两个lable,具体的就不详细了,很简单的,下面是这个界面的.h和.m文件:

[cpp] view plaincopyprint?
  1. #import <UIKit/UIKit.h>   
  2.   
  3.   
  4. @interface MyTableViewOneMessage : UIViewController {  
  5.     IBOutlet UILabel *mylable;  
  6.     NSString *message;  
  7. }  
  8.   
  9. @property(nonatomic,retain)UILabel *mylable;  
  10. @property(nonatomic,retain)NSString *message;  
  11.   
  12. @end  
#import <UIKit/UIKit.h>
@interface MyTableViewOneMessage : UIViewController {
IBOutlet UILabel *mylable;
NSString *message;
}
@property(nonatomic,retain)UILabel *mylable;
@property(nonatomic,retain)NSString *message;
@end

[cpp] view plaincopyprint?
  1. #import "MyTableViewOneMessage.h"   
  2.   
  3.   
  4. @implementation MyTableViewOneMessage  
  5.   
  6. @synthesize mylable;  
  7. @synthesize message;  
  8.   
  9. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil  
  10. {  
  11.     self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];  
  12.     if (self) {  
  13.         // Custom initialization   
  14.     }  
  15.     return self;  
  16. }  
  17.   
  18. -(void)viewDidAppear:(BOOL)animated{  
  19.     self.mylable.text = message;  
  20. }  
  21.   
  22. - (void)dealloc  
  23. {  
  24.     [mylable release];  
  25.     [message release];  
  26.     [super dealloc];  
  27. }  
  28.   
  29. - (void)didReceiveMemoryWarning  
  30. {  
  31.     // Releases the view if it doesn't have a superview.   
  32.     [super didReceiveMemoryWarning];  
  33.       
  34.     // Release any cached data, images, etc that aren't in use.   
  35. }  
  36.   
  37. #pragma mark - View lifecycle   
  38.   
  39. - (void)viewDidLoad  
  40. {  
  41.     self.navigationItem.title = @"Tableview传过来的值";  
  42.     [super viewDidLoad];  
  43.     // Do any additional setup after loading the view from its nib.   
  44. }  
  45.   
  46. - (void)viewDidUnload  
  47. {  
  48.     [super viewDidUnload];  
  49.     // Release any retained subviews of the main view.   
  50.     // e.g. self.myOutlet = nil;   
  51. }  
  52.   
  53. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
  54. {  
  55.     // Return YES for supported orientations   
  56.     return (interfaceOrientation == UIInterfaceOrientationPortrait);  
  57. }  
  58.   
  59. @end  
#import "MyTableViewOneMessage.h"
@implementation MyTableViewOneMessage
@synthesize mylable;
@synthesize message;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
-(void)viewDidAppear:(BOOL)animated{
self.mylable.text = message;
}
- (void)dealloc
{
[mylable release];
[message release];
[super dealloc];
}
- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
#pragma mark - View lifecycle
- (void)viewDidLoad
{
self.navigationItem.title = @"Tableview传过来的值";
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
@end



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/388345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

aws emr 大数据分析_DataOps —使用AWS Lambda和Amazon EMR的全自动,低成本数据管道

aws emr 大数据分析Progression is continuous. Taking a flashback journey through my 25 years career in information technology, I have experienced several phases of progression and adaptation.进步是连续的。 在我25年的信息技术职业生涯中经历了一次闪回之旅&…

先进的NumPy数据科学

We will be covering some of the advanced concepts of NumPy specifically functions and methods required to work on a realtime dataset. Concepts covered here are more than enough to start your journey with data.我们将介绍NumPy的一些高级概念&#xff0c;特别是…

lsof命令详解

基础命令学习目录首页 原文链接&#xff1a;https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316599.html 简介 lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下&#xff0c;任何事物都以文件的形式存在&#xff0c;通过文件不仅仅可以访问常规…

统计和冰淇淋

Photo by Irene Kredenets on UnsplashIrene Kredenets在Unsplash上拍摄的照片 摘要 (Summary) In this article, you will learn a little bit about probability calculations in R Studio. As it is a Statistical language, R comes with many tests already built in it, …

信息流服务器哪种好,选购存储服务器需要注意六大关键因素,你知道几个?

原标题&#xff1a;选购存储服务器需要注意六大关键因素&#xff0c;你知道几个&#xff1f;信息技术的飞速发展带动了整个信息产业的发展。越来越多的电子商务平台和虚拟化环境出现在企业的日常应用中。存储服务器作为企业建设环境的核心设备&#xff0c;在整个信息流中承担着…

t3 深入Tornado

3.1 Application settings 前面的学习中&#xff0c;在创建tornado.web.Application的对象时&#xff0c;传入了第一个参数——路由映射列表。实际上Application类的构造函数还接收很多关于tornado web应用的配置参数。 参数&#xff1a; debug&#xff0c;设置tornado是否工作…

对数据仓库进行数据建模_确定是否可以对您的数据进行建模

对数据仓库进行数据建模Some data sets are just not meant to have the geospatial representation that can be clustered. There is great variance in your features, and theoretically great features as well. But, it doesn’t mean is statistically separable.某些数…

15 并发编程-(IO模型)

一、IO模型介绍 1、阻塞与非阻塞指的是程序的两种运行状态 阻塞&#xff1a;遇到IO就发生阻塞&#xff0c;程序一旦遇到阻塞操作就会停在原地&#xff0c;并且立刻释放CPU资源 非阻塞&#xff08;就绪态或运行态&#xff09;&#xff1a;没有遇到IO操作&#xff0c;或者通过某种…

不提拔你,就是因为你只想把工作做好

2019独角兽企业重金招聘Python工程师标准>>> 我有个朋友&#xff0c;他30出头&#xff0c;在500强公司做技术经理。他戴无边眼镜&#xff0c;穿一身土黄色的夹克&#xff0c;下面是一条常年不洗的牛仔裤加休闲皮鞋&#xff0c;典型技术高手范。 三 年前&#xff0c;…

python内置函数多少个_每个数据科学家都应该知道的10个Python内置函数

python内置函数多少个Python is the number one choice of programming language for many data scientists and analysts. One of the reasons of this choice is that python is relatively easier to learn and use. More importantly, there is a wide variety of third pa…

C#使用TCP/IP与ModBus进行通讯

C#使用TCP/IP与ModBus进行通讯1. ModBus的 Client/Server模型 2. 数据包格式及MBAP header (MODBUS Application Protocol header) 3. 大小端转换 4. 事务标识和缓冲清理 5. 示例代码 0. MODBUS MESSAGING ON TCP/IP IMPLEMENTATION GUIDE 下载地址&#xff1a;http://www.modb…

Hadoop HDFS常用命令

1、查看hdfs文件目录 hadoop fs -ls / 2、上传文件 hadoop fs -put 文件路径 目标路径 在浏览器查看:namenodeIP:50070 3、下载文件 hadoop fs -get 文件路径 保存路径 4、设置副本数量 -setrep 转载于:https://www.cnblogs.com/chaofan-/p/9742633.html

SAP UI 搜索分页技术

搜索分页技术往往和另一个术语Lazy Loading&#xff08;懒加载&#xff09;联系起来。今天由Jerry首先介绍S/4HANA&#xff0c;CRM Fiori和S4CRM应用里的UI搜索分页的实现原理。后半部分由SAP成都研究院菜园子小哥王聪向您介绍Twitter的懒加载实现。 关于王聪的背景介绍&#x…

万彩录屏服务器不稳定,万彩录屏 云服务器

万彩录屏 云服务器 内容精选换一换内网域名是指仅在VPC内生效的虚拟域名&#xff0c;无需购买和注册&#xff0c;无需备案。云解析服务提供的内网域名功能&#xff0c;可以让您在VPC中拥有权威DNS&#xff0c;且不会将您的DNS记录暴露给互联网&#xff0c;解析性能更高&#xf…

针对数据科学家和数据工程师的4条SQL技巧

SQL has become a common skill requirement across industries and job profiles over the last decade.在过去的十年中&#xff0c;SQL已成为跨行业和职位描述的通用技能要求。 Companies like Amazon and Google will often demand that their data analysts, data scienti…

全排列算法实现

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/summerxiachen/article/details/605796231.全排列的定义和公式&#xff1a; 从n个数中选取m&#xff08;m<n&#xff09;个数按照一定的顺序进行排成一个列&#xff0c;叫…

14.并发容器之ConcurrentHashMap(JDK 1.8版本)

1.ConcurrentHashmap简介 在使用HashMap时在多线程情况下扩容会出现CPU接近100%的情况&#xff0c;因为hashmap并不是线程安全的&#xff0c;通常我们可以使用在java体系中古老的hashtable类&#xff0c;该类基本上所有的方法都采用synchronized进行线程安全的控制&#xff0c;…

服务器虚拟化网口,服务器安装虚拟网口

服务器安装虚拟网口 内容精选换一换Atlas 800 训练服务器(型号 9010)安装上架、服务器基础参数配置、安装操作系统等操作请参见《Atlas 800 训练服务器 用户指南 (型号9010)》。Atlas 800 训练服务器(型号 9010)适配操作系统如表1所示。请参考表2下载驱动和固件包。Atlas 800 训…

芒果云接吗_芒果糯米饭是生产力的关键吗?

芒果云接吗Would you like to know how your mood impact your sleep and how your parents influence your happiness levels?您想知道您的心情如何影响您的睡眠以及您的父母如何影响您的幸福感吗&#xff1f; Become a data nerd, and track it!成为数据书呆子&#xff0c;…

laravel-admin 开发 bootstrap-treeview 扩展包

laravel-admin 扩展开发文档https://laravel-admin.org/doc... 效果图&#xff1a; 开发过程&#xff1a; 1、先创建Laravel项目&#xff0c;并集成laravel-admin&#xff0c;教程&#xff1a; http://note.youdao.com/notesh... 2、生成开发扩展包 php artisan admin:extend c…