iOS开发中 常用枚举和常用的一些运算符(易错总结)

1、色值的随机值:
#define kColorValue arc4random_uniform(256)/255.0
//  arc4random_uniform(256)/255.0;  求出0.0~1.0之间的数字view.backgroundColor = [UIColor colorWithRed:kColorValue green: kColorValue blue: kColorValue alpha: 0.5];

2、定时器的使用:
 [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(fromOutToInside) userInfo:nil repeats:YES];

3、退回键盘触发方法
- (BOOL)textFieldShouldReturn:(UITextField *)textField;{[textField resignFirstResponder];return YES;
}

4、点击空白回收键盘
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{for (int i = 0; i < 5; i ++ ) {[field resignFirstResponder];
}

5、UILabel切圆角,下面两个同时才能显示
    label.layer.cornerRadius = 10;//切圆角
    label.layer.masksToBounds = YES;
6、  UITextField文本框类型 (圆角)
    textField.borderStyle = UITextBorderStyleRoundedRect;
7、定时器
[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(printHelloword) userInfo:nil repeats:YES];

8、UITextField 文本框的叉号,X
 _field.clearButtonMode =  UITextFieldViewModeAlways;


9、设置导航默认标题的颜色及字体大小  
self.navigationController.navigationBar.titleTextAttributes = @{UITextAttributeTextColor: [UIColor whiteColor],  UITextAttributeFont : [UIFont boldSystemFontOfSize:18]}; 


11、身份证号处理
- (NSString *)ittemDisposeIdcardNumber:(NSString *)idcardNumber {//星号字符串NSString *xinghaoStr = @"";//动态计算星号的个数for (int i  = 0; i < idcardNumber.length - 7; i++) {xinghaoStr = [xinghaoStr stringByAppendingString:@"*"];}//身份证号取前3后四中间以星号拼接idcardNumber = [NSString stringWithFormat:@"%@%@%@",[idcardNumber substringToIndex:3],xinghaoStr,[idcardNumber substringFromIndex:idcardNumber.length-4]];//返回处理好的身份证号return idcardNumber;
}

----------------------------------------------------------------------------------------------------------
12、//调整字间距
 
  CFNumberRef num = CFNumberCreate(kCFAllocatorDefault,kCFNumberSInt8Type,&number;);[attributedString addAttribute:(id)kCTKernAttributeName value:(__bridge id)num range:NSMakeRange(0, [attributedString length])];//调整行间距[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [_messageLabel.text length])];_messageLabel.attributedText = attributedString;

----------------------------------------------------------------------
13、ios8适配地图授权问题
iOS8修改了位置设置里的内容,增加了一套状态(使用中可用/通常可用),所以以前的CLLcationManage的注册后, 
Delegate接口不响应了。 
  iOS8需要这么设置 
第一步 
    location = [[CLLocationManager alloc] init]; 
location.delegate= self; 
[locationrequestAlwaysAuthorization]; 

第二步 
在Plist中追加下面两个字段 (必须有,最少一个,内容是系统ALert的文言,文言可为空) 
第三步 
有了新的Delegate方法。 
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status 
{ switch (status) { 
casekCLAuthorizationStatusNotDetermined: if ([location respondsToSelector:@selector(requestAlwaysAuthorization)]) { 
[locationrequestAlwaysAuthorization]; } break; default: break;     } 
}

----------------------------------------------------------------------
14、一段文字设置多种字体颜色
//设置不同字体颜色
-(void)fuwenbenLabel:(UILabel *)labell FontNumber:(id)font AndRange:(NSRange)range AndColor:(UIColor *)vaColor
{NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:labell.text];//设置字号[str addAttribute:NSFontAttributeName value:font range:range];//设置文字颜色[str addAttribute:NSForegroundColorAttributeName value:vaColor range:range];labell.attributedText = str;
}

----------------------------------------------------------------------
15、由身份证号码返回性别
-(NSString *)sexStrFromIdentityCard:(NSString *)numberStr{NSString *result = nil;BOOL isAllNumber = YES;if([numberStr length]<17)return result;//**截取第17为性别识别符NSString *fontNumer = [numberStr substringWithRange:NSMakeRange(16, 1)];//**检测是否是数字;const char *str = [fontNumer UTF8String];const char *p = str;while (*p!='\0') {if(!(*p>='0'&&*p<='9'))isAllNumber = NO;p++;}if(!isAllNumber)return result;int sexNumber = [fontNumer integerValue];if(sexNumber%2==1)result = @"男";///result = @"M";else if (sexNumber%2==0)result = @"女";//result = @"F";return result;
}

----------------------------------------------------------------------
16、iphone开发之获取系统字体
+ (NSArray*)getAllSystemFonts;
{NSMutableArray *array = [[[NSMutableArray alloc] init] autorelease];NSArray* familys = [UIFont familyNames];for (id obj in familys) {NSArray* fonts = [UIFont fontNamesForFamilyName:obj];for (id font in fonts)     {[array addObject:font];}}return array; 
}
+ (UIFont*)getCurrentFont
{//判断系统字体的size,返回使用的字体。UIFont *font = [UIFont systemFontOfSize:[UIFont systemFontSize]];return font;
}

----------------------------------------------------------------------
17、输入字体,内容。自动算范围
内容:字符串,输入字体大小,和需要多宽
CGSize size1 = [内容 sizeWithFont:[UIFont boldSystemFontOfSize:13] constrainedToSize:CGSizeMake(宽度, 10000)];
-(CGFloat)getHeight:(NSString *)text andWidth:(CGFloat)width andFont:(UIFont *)font
{CGRect frame =  [text boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX) options:NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:font} context:nil] ;return  frame.size.height ;
}


18、#region 将Base64编码的文本转换成普通文本
        /// <summary>/// 将Base64编码的文本转换成普通文本/// </summary>/// <param name="base64">Base64编码的文本</param>/// <returns></returns>public static string Base64StringToString(string base64){if (base64 != ""){char[] charBuffer = base64.ToCharArray();byte[] bytes = Convert.FromBase64CharArray(charBuffer, 0, charBuffer.Length);string returnstr = Encoding.Default.GetString(bytes);return returnstr;}else{return "";}}#endregion#region 字符串转为base64字符串public static string changebase64(string str){if (str != "" && str != null){byte[] b = Encoding.Default.GetBytes(str);string returnstr = Convert.ToBase64String(b);return returnstr;}else{return "";}}#endregion


19、获取文件路径
 NSString *filePath = [[NSBundle mainBundle]pathForResource:@"Contacts.plist" ofType:nil];

 20修改title的字体颜色
   
 NSDictionary *dic = @{NSForegroundColorAttributeName : [UIColor whiteColor]};self.navigationController.navigationBar.titleTextAttributes = dic;


21、添加头像的方法
//调用添加手势的方法
    [self addTapGesture];

//给aImageView 视图添加轻拍手势
- (void)addTapGesture{UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTap : )];[self.aview.aImageView addGestureRecognizer:tap];[tap release];}


//实现轻拍手势的方法
- (void)handleTap : (UITapGestureRecognizer *)tap{
//添加ActionSheet控件 提示选项框UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"拍照" otherButtonTitles:@"从手机中选择", nil];//在当前界面显示actionSheet对象[actionSheet showInView:self.view];[actionSheet release];
}



- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{switch (buttonIndex) {case 0://拍照NSLog(@"拍照");[self pickerPictureFromCamera];break;case 1://从相册中读取照片NSLog(@"从相册中读取照片");[self pickerPictureFormPhotoAlbum];break;default:break;}}


//拍照
- (void)pickerPictureFromCamera{//判断前摄像头是否可以使用
BOOL isCameera = [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront];
//    UIImagePickerControllerCameraDeviceFront   前摄像头
//    UIImagePickerControllerCameraDeviceRear  //后摄像头if (!isCameera) {NSLog(@"没有摄像头可以使用");return;}//初始化图片选择控制器对象UIImagePickerController *imagePicker = [[UIImagePickerController alloc]init];//设置图片选择器选取图片的样式imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;//设置取出来的图片是否允许编辑imagePicker.allowsEditing = YES;//设置代理imagePicker.delegate = self;//把手机相机推出来[self presentViewController:imagePicker animated:YES completion:nil];[imagePicker release];}


//从相册中取出相片
- (void)pickerPictureFormPhotoAlbum{UIImagePickerController *imagePicker = [[UIImagePickerController alloc]init];//设置图片格式imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;//设置允许编辑imagePicker.allowsEditing = YES;//设置代理imagePicker.delegate = self;[self presentViewController:imagePicker animated:YES completion:nil];[imagePicker release];}


- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{//从字典中取出编辑的key值,对应的照片self.aview.aImageView.image = [info objectForKey:UIImagePickerControllerEditedImage];//自己推出来的自己收回去[self dismissViewControllerAnimated:YES completion:nil];
}

================================================================================
22.NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名、密码之类的,个人觉得使用NSUserDefaults是首选。下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息咯。

因为如果使用自己建立的plist文件什么的,还得自己显示创建文件,读取文件,很麻烦,而是用NSUserDefaults则不用管这些东西,就像读字符串一样,直接读取就可以了。

NSUserDefaults支持的数据格式有:NSNumber(Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,BOOL类型
23.封装一个解析的方法:
//封装一个解析的方法
- (void)parserData : (NSData *)data{//解析:NSMutableDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];//    NSLog(@"%@",dataDic); 验证!//取出results key值对应的数组NSArray *array = dataDic[@"results"];//遍历数组的字典,并使用给Business对象赋值for (NSDictionary *dic in array) {//创建数据模型对象Business *bus = [[Business alloc]init];//使用kvc给bus赋值[bus setValuesForKeysWithDictionary:dic];//添加到存储所有商户信息的数组[self.dataSource addObject:bus];//释放[bus release];//        NSLog(@"%@",self.dataSource); 验证! }//刷新ui界面[self.tableView reloadData];
}



24、 '-[Person encodeWithCoder:]: unrecognized selector sent to instance 0x7fc831d9c880   方法没实现
25、计算字符串的大小:
+ (CGSize)getStringSize:(NSString *)text strMaxWidth:(CGFloat )width fontSize:(UIFont *)fontSize{CGSize constraint = CGSizeMake(width, MAXFLOAT);NSDictionary *dict = [NSDictionary dictionaryWithObject:fontSize forKey: NSFontAttributeName];CGSize size = CGSizeZero;if (isAboveIOS7) {size = [text boundingRectWithSize:constraintoptions:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeadingattributes:dictcontext:nil].size;return size;}size = [text sizeWithFont:fontSizeconstrainedToSize:constraintlineBreakMode:NSLineBreakByWordWrapping];return size;
}

26、storyboard传值:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {//获取segue起始端的视图控制器对象RootViewController *rootVC =  [segue sourceViewController];//通过segue完成跳转的时候会触发这个方法,在跳转之前触发,一般用来传值//获取push过去后的视图控制器对象DetailViewController *detailVC = [segue destinationViewController];//把textField中的内容取出来赋值给下一个界面的属性detailVC.string = rootVC.textField.text;// rootVC.textField.text 相当于 self.textField.text
}


27.赋值方法中基本数据类型转字符串
 
  self.ageLabel.text = [NSString stringWithFormat:@"%ld",person.age];

28.UIViewController中关于nib初始化的函数

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;
从这个函数的说明我们可以知道,如果你subclass一个UIViewController,不管有没有使用NIB, [super initWithNibName:bundle]这个方法必须被调用, 这个方法会在如下两种情况下被调用:

  • 显示调用, 指定一个nib名称,系统会去找指定的nib
  • 在父类的Init方法中被调用,如果这种情况,两个参数都会是nil,系统会去找和你自定以的UIViewController相同名字的nib
如果系统找到nib文件,就会把nib文件中的内容加载进来,有一点需要解释,initWithNibName:bundle方法并不会加载nib, 当UIViewController的view属性第一次被使用的时候,系统就会调用UIViewController中的loadView方法,在这个方法中会加载nib文件。
如果不用nib,我们可以在loadview中创建view的层次结构,对于有nib的情况,我们也可以在这个方法中做想要的修改。

NSBundle Nib装载方法

Resource programming guide 文档详细介绍了nib的装载过程,例如可以用loadNibNamed:owner方法,但是这个方法只是做了loadNib的事情。

29、解决webView的汉字显示问题
  NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://linode-back-cn.b0.upaiyun.com/articles/d34/372/db6edd24d68302930fbc5fd44c.html"]]];[self.webView loadData:data MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:nil];


30.IOS 登陆注销功能的实现

1、在appDelegate中加入一个navigation用来控制所有的页面跳转
2、将login页面作为navigation的root view
3、在appDelegate中判断程序是否是第一次登陆,如果是直接进入login页面,如果不是则跳过login页面,push下一个页面(程序主页面,且采用的是tab+nav的结构)
4、程序主页面中对应的每个tab页面都是一个nav的结构
5、当点击注销按钮时,利用appDelegate中的导航将主页面pop出来,此时程序便又重新回到了login页面。

31.Label自适应高度

UILabel *descLable=[[UILabel alloc] init];[descLable setNumberOfLines:0];descLable.lineBreakMode = UILineBreakModeCharacterWrap;descLable.text = _newsListModel.news_comtent;descLable.font = [UIFont systemFontOfSize:12];UIFont *font = [UIFont fontWithName:@"Arial" size:12];CGSize size = CGSizeMake(300, MAXFLOAT);CGSize labelsize = [_newsListModel.news_comtent sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeCharacterWrap];[descLable setFrame:CGRectMake(10, 280,300, labelsize.height)];[headView addSubview:descLable];view.backgourd.color = [uicolor  colorwithred green blue alpha:0.5]

————————————————————————————————————————————————————————————————————————
32、SDWebImage手动清除缓存的方法

1.找到SDImageCache类

2.添加如下方法:

[objc] view plaincopy
  1. - (float)checkTmpSize  
  2. {  
  3.     float totalSize = 0;  
  4.     NSDirectoryEnumerator *fileEnumerator = [[NSFileManager defaultManager] enumeratorAtPath:diskCachePath];  
  5.     for (NSString *fileName in fileEnumerator)  
  6.     {  
  7.         NSString *filePath = [diskCachePath stringByAppendingPathComponent:fileName];  
  8.   
  9.         NSDictionary *attrs = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:nil];  
  10.   
  11.         unsigned long long length = [attrs fileSize];  
  12.   
  13.         totalSize += length / 1024.0 / 1024.0;  
  14.     }  
  15. //    NSLog(@"tmp size is %.2f",totalSize);  
  16.   
  17.     return totalSize;  
  18. }  


新版的SDImageCache类,已增加此方法

[objc] view plaincopy
  1. [[SDImageCache sharedImageCache] getSize];  
3.在设置里这样使用

[objc] view plaincopy
  1. #pragma 清理缓存图片  
  2.   
  3. - (void)clearTmpPics  
  4. {  
  5.     [[SDImageCache sharedImageCache] clearDisk];  
  6.   
  7. //    [[SDImageCache sharedImageCache] clearMemory];//可有可无  
  8.   
  9.     DLog(@"clear disk");      
  10.   
  11.     float tmpSize = [[SDImageCache sharedImageCache] checkTmpSize];  
  12.   
  13.     NSString *clearCacheName = tmpSize >= 1 ? [NSString stringWithFormat:@"清理缓存(%.2fM)",tmpSize] : [NSString stringWithFormat:@"清理缓存(%.2fK)",tmpSize * 1024];  
  14.   
  15.     [configDataArray replaceObjectAtIndex:2 withObject:clearCacheName];  
  16.   
  17.     [configTableView reloadData];  
  18. }  

32、第三方MJ使用方法
1、只需修改环境中的footer和base   -fobjc-arc

2、选中项目 - Project - Build Settings - ENABLE_STRICT_OBJC_MSGSEND  将其设置为 NO 即可


常用和易错的记录会持续更新..............敬请关注!



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

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

相关文章

明明加了唯一索引,为什么还是产生重复数据?

前段时间我踩过一个坑&#xff1a;在mysql8的一张innodb引擎的表中&#xff0c;加了唯一索引&#xff0c;但最后发现数据竟然还是重复了。到底怎么回事呢&#xff1f;本文通过一次踩坑经历&#xff0c;聊聊唯一索引&#xff0c;一些有意思的知识点。1.还原问题现场前段时间&…

nmap入门之主机发现

2019独角兽企业重金招聘Python工程师标准>>> #主机发现&#xff08;HOST DISCOVERY&#xff09; ##仅列出IP&#xff0c;不扫描 nmap -sL 192.168.70.0/24 > nmap_result.txt 2>&1##仅ping扫描&#xff0c;不扫描端口 nmap -sn 192.168.70.0/24##不ping扫…

面试官:为什么ConcurrentHashMap要放弃分段锁?

今天我们来讨论一下一个比较经典的面试题就是 ConcurrentHashMap 为什么放弃使用了分段锁&#xff0c;这个面试题阿粉相信很多人肯定觉得有点头疼&#xff0c;因为很少有人在开发中去研究这块的内容&#xff0c;今天阿粉就来给大家讲一下这个 ConcurrentHashMap 为什么在 JDK8 …

面试突击72:输入URL之后会执行什么流程?

作者 | 磊哥来源 | Java面试真题解析&#xff08;ID&#xff1a;aimianshi666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;在浏览器中输入 URL 之后&#xff0c;它会执行以下几个流程&#xff1a;执行 DNS 域名解析&#xff1b;封装 HTTP 请…

面试必备:TCP 经典 15 连问!

TCP协议是大厂面试必问的知识点。整理了15道非常经典的TCP面试题&#xff0c;希望大家都找到理想的offer呀1. 讲下TCP三次握手流程开始客户端和服务器都处于CLOSED状态&#xff0c;然后服务端开始监听某个端口&#xff0c;进入LISTEN状态第一次握手(SYN1, seqx)&#xff0c;发…

ISP QoS Lab

ISP QoS Lab1-PQ优先级队列&#xff08;PQ&#xff0c;Priority Queue&#xff09;中&#xff0c;有高、中、普通、低优先级四个队列。数据包根据事先的定义放在不同的队列中&#xff0c;路由器按照高、中、普通、低顺序服务&#xff0c;只有高优先级的队列为空后才为中优先级的…

面渣逆袭:JVM经典五十问,这下面试稳了!

引言1.什么是JVM?JVM——Java虚拟机&#xff0c;它是Java实现平台无关性的基石。Java程序运行的时候&#xff0c;编译器将Java文件编译成平台无关的Java字节码文件&#xff08;.class&#xff09;,接下来对应平台JVM对字节码文件进行解释&#xff0c;翻译成对应平台匹配的机器…

操作系统大内核和微内核_操作系统中的内核类型

操作系统大内核和微内核As we have already studied about the Kernels, we know that the Kernel is a program which is the main component of the Operating System. Now let us study about the types of Kernels. 正如我们已经研究了内核一样 &#xff0c;我们知道内核是…

【论文解读】Learning based fast H.264 to H.265 transcoding

时间&#xff1a; 2015 年 级别&#xff1a;APSIPA 机构&#xff1a; 上海电力大学 摘要 新提出的视频编码标准HEVC (High Efficiency video coding)以其比H.264/AVC更好的编码效率&#xff0c;被工业界和学术界广泛接受和采用。在HEVC实现了约40%的编码效率提升的同时&#…

面试必备:聊聊sql优化的15个小技巧

sql优化是一个大家都比较关注的热门话题&#xff0c;无论你在面试&#xff0c;还是工作中&#xff0c;都很有可能会遇到。如果某天你负责的某个线上接口&#xff0c;出现了性能问题&#xff0c;需要做优化。那么你首先想到的很有可能是优化sql语句&#xff0c;因为它的改造成本…

面试突击73:IoC 和 DI 有什么区别?

作者 | 磊哥来源 | Java面试真题解析&#xff08;ID&#xff1a;aimianshi666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;IoC 和 DI 都是 Spring 框架中的重要概念&#xff0c;就像玫瑰花与爱情一样&#xff0c;IoC 和 DI 通常情况下也是成…

MyBatis整合Spring的实现(13)

2019独角兽企业重金招聘Python工程师标准>>> 本章中分析insert元素的解析。 1 配置文件 <insert id"insert" parameterType"cn.vansky.schedule.time.menu.bo.Menu"><!--WARNING - mbggeneratedThis element is automatically generat…

麻了,代码改成多线程,竟有9大问题

很多时候&#xff0c;我们为了提升接口的性能&#xff0c;会把之前单线程同步执行的代码&#xff0c;改成多线程异步执行。比如&#xff1a;查询用户信息接口&#xff0c;需要返回用户基本信息、积分信息、成长值信息&#xff0c;而用户、积分和成长值&#xff0c;需要调用不同…

浅聊一下线程池的10个坑

日常开发中&#xff0c;为了更好管理线程资源&#xff0c;减少创建线程和销毁线程的资源损耗&#xff0c;我们会使用线程池来执行一些异步任务。但是线程池使用不当&#xff0c;就可能会引发生产事故。今天跟大家聊聊线程池的10个坑。大家看完肯定会有帮助的~线程池默认使用无界…

Linux命令行上执行操作,不退回命令行的解决方法

问题描述&#xff1a; 如果你现在登录Centos执行了某个操作&#xff0c;但是操作一直占用命令行&#xff0c;命令行显示的也都是这个命令相关的操作&#xff0c;我想做其它事情 &#xff0c;该怎么办呢 &#xff1f; 解决方法&#xff1a; 根据《Linux命令行与Shell编程大全第2…

SpringBoot 读取配置文件的 5 种方法!

作者 | 磊哥来源 | Java面试真题解析&#xff08;ID&#xff1a;aimianshi666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;Spring Boot 中读取配置文件有以下 5 种方法&#xff1a;使用 Value 读取配置文件。使用 ConfigurationProperties 读…

使用阿里巴巴 Druid 轻松实现加密!

作者 | 磊哥来源 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;为什么要加密&#xff1f;现在的开发习惯&#xff0c;无论是公司的项目还是个人的项目&#xff0c;都会选择将源码上传到 Gi…

xml不显示css样式_如何使用CSS显示XML?

xml不显示css样式Introduction: 介绍&#xff1a; You must be aware of the term XML and must have dealt with these various XML files while developing a web page or website. This article focuses entirely on XML and how to display them using CSS. There are num…

c#组元(Tuple)的使用

组元(Tuple)是C# 4.0引入的一个新特性&#xff0c;可以在.NET Framework 4.0或更高版本中使用。组元使用泛型来简化类的定义&#xff0c;多用于方法的返回值。在函数需要返回多个类型的时候&#xff0c;就不必使用out , ref等关键字了&#xff0c;直接定义一个Tuple类型&#x…

浅谈一下 MyBatis 批量插入的 3 种方法!

作者 | 磊哥来源 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone批量插入功能是我们日常工作中比较常见的业务功能之一&#xff0c;今天咱们来一个 MyBatis 批量插入的汇总篇&#xff0c;同时对 3 种实现…