基础
st646889325
这个作者很懒,什么都没留下…
展开
-
iOS app国际化语言设置以及默认语言
5.进阶需求,童鞋们想实现进app之后,设置默认语言,如果是当前本地语言之外的语言,就设置语言为英文的话,请看下边思路!这行代码意思获取首页userdefault中设置的语言类型,然后根据类型去获取语言资源包,然后使用相应的资源。设置语言资源:分别在两个语言文件里边设置key:value,key必须相同,然后value分别对应版本语言。4.目前为止,就实现了跟随系统语言来切换app里边的内容。2.文件名字我是使用的系统的Localizable。可以看下资源包名字,就明白了。3.设置支持的语言版本。原创 2024-10-21 15:35:07 · 330 阅读 · 0 评论 -
二进制、十进制、十六进制之间相互转换的方法
需要十六进制转换为十进制的话,就按上面方法将十六进制转换为二进制后再转换为十进制就行了。原创 2023-10-08 10:07:14 · 148 阅读 · 0 评论 -
iOS nsstring 截取字符前后字符串
NSString *trafficeStr = @“PEK_LHR”NSRange range = [trafficeStr rangeOfString:@“_” options:NSBackwardsSearch];NSString *from = [trafficeStr substringToIndex:range.location];NSString *to = [trafficeStr substringFromIndex:range.location + 1];原创 2023-08-08 13:53:21 · 465 阅读 · 0 评论 -
iOS 获取IP地址
创建一个类文件#import <Foundation/Foundation.h>@interface IPAddress : NSObject+ (NSString *)getIPAddress:(BOOL)preferIPv4;@end#import "IPAddress.h"#import <ifaddrs.h>#import <arpa/inet.h>#import <net/if.h> #define IOS_CELLULAR原创 2022-03-02 15:16:32 · 1916 阅读 · 0 评论 -
Mac 终端下获取项目文件下代码行数
三种在MacOS终端下获取源程序量方法:1、打开终端。2、cd到你项目的路径。(cd+空格+文件路径)3、输入如下命令:(a)统计整个工程的所有文件的代码量以及总量find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.h" -or -name "*.rss" ")" -print | xargs wc -l(b)find . -name '*.m' -exec cat {} \; |.原创 2020-07-01 11:01:50 · 584 阅读 · 0 评论 -
整合数组中还有相同的元素,最后数组中显示原数组中相同的
NSMutableDictionary *dic1 = [NSMutableDictionary dictionary]; [dic1 setObject:@"123" forKey:@"orgPID"]; [dic1 setObject:@"aaa" forKey:@"name"]; NSMutableDictionary *dic2 = [NS原创 2018-04-27 15:49:52 · 195 阅读 · 0 评论 -
NSDictionary以及NSMutableDictionary用法总结
1.创建不可变词典[NSDictionary dictionaryWithObjectsAndKeys:..] : 使用键值对儿直接创建词典对象,结尾必需使用nil标志结束。[NSDictionary initWithObjectsAndKeys:..] :使用键值对儿初始化词典对象,结尾必需使用nil标志结束。[dictionary count]: 得到词典的长度单位。原创 2016-11-03 09:14:30 · 511 阅读 · 0 评论 -
到底什么时候才需要在ObjC的Block中使用weakSelf/strongSelf
Objective C 的 Block 是一个很实用的语法,特别是与GCD结合使用,可以很方便地实现并发、异步任务。但是,如果使用不当,Block 也会引起一些循环引用问题(retain cycle)—— Block 会 retain ‘self’,而 ‘self‘ 又 retain 了 Block。因为在 ObjC 中,直接调用一个实例变量,会被编译器处理成 ‘self->theVar’,’se转载 2016-11-02 09:02:51 · 239 阅读 · 0 评论 -
NSNumberFormatter的使用
通过NSNumberFormatter,可以设置NSNumber输出的格式。NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];formatter.numberStyle = NSNumberFormatterNoStyle;NSString *string = [formatter str转载 2016-10-31 10:18:54 · 353 阅读 · 0 评论 -
NSString字符串截取三种方法
1.定义一个字符串a, 截取a 的某一个项目组,复制给b, b必须是int型 NSString *a = @"1.2.30"; int b= [[a substringWithRange:NSMakeRange(4,2)] intValue]; NSLog(@"a:%@ \n",a ); NSLog(@"b:%d",b );转载 2016-10-24 16:27:24 · 3114 阅读 · 0 评论 -
iOS截取字符串(NSString)
截取字符串是很常用的功能,NSString的截取主要有三种方式(下面说的字符串字符下标都是从0开始数):截取某个下标之前的字符串,结果不包含下标对应的字符截取某个下标之后的字符串,结果包含下标对应的字符截取一段字符串实现效果如下图:下面分别说明:1、截取某个下标之前的字符串,结果不包含下标对应的字符原创 2016-11-11 17:22:44 · 561 阅读 · 0 评论 -
iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)
iOS页面间传值的方式(NSUserDefault/Delegate/NSNotification/Block/单例)实现了以下iOS页面间传值:1.委托delegate方式;2.通知notification方式;3.block方式;4.UserDefault或者文件方式;5.单例模式方式;6.通过设置属性,实现页面间传值在iOS开发中,我们经常会遇到页面间跳转传值的问题,现归纳总转载 2016-11-12 09:03:05 · 374 阅读 · 0 评论 -
loadView、viewDidLoad、viewWillAppear、viewDidAppear等详解
loadView; This is where subclasses should create their custom view hierarchy if they aren't using a nib. Should never be called directly.这是当他们没有正在使用nib视图页面,子类将会创建自己的自定义视图层。绝不能直接调用。viewDidLoad;转载 2016-11-22 16:55:29 · 279 阅读 · 0 评论 -
Objective-C之Foundation框架
Foundation概述为什么前面说的内容中新建一个类的时候我们都是选择Cocoa Class呢?Cocoa是什么呢?Cocoa不是一种编程语言(它可以运行多种编程语言),它也不是一个开发工具(通过命令行我们仍然可以开发Cocoa程序),它是创建Mac OS X和IOS程序的原生面向对象API,为这两者应用提供了编程环境。我们通常称为“Cocoa框架”,事实上Cocoa本身转载 2016-11-15 09:24:09 · 563 阅读 · 0 评论 -
Objective-C之KVC、KVO
键值编码KVC我们知道在C#中可以通过反射读写一个对象的属性,有时候这种方式特别方便,因为你可以利用字符串的方式去动态控制一个对象。其实由于ObjC的语言特性,你根部不必进行任何操作就可以进行属性的动态读写,这种方式就是Key Value Coding(简称KVC)。KVC的操作方法由NSKeyValueCoding协议提供,而NSObject就实现了这个协议,也就是说ObjC中几转载 2016-11-15 09:26:02 · 458 阅读 · 0 评论 -
Objective-C中的@property和@synthesize用法
Objective-C语言关键词,@property与@synthesize配对使用。 功能:让编译好器自动编写一个与数据成员同名的方法声明来省去读写方法的声明。 如:1、在头文件中:C代码 @property int count; 等效于在头文件中声明2个方法:C代码 - (原创 2016-11-16 09:50:05 · 364 阅读 · 0 评论 -
retain, copy, assign区别
一,retain, copy, assign区别1. 假设你用malloc分配了一块内存,并且把它的地址赋值给了指针a,后来你希望指针b也共享这块内存,于是你又把a赋值给(assign)了b。此时a 和b指向同一块内存,请问当a不再需要这块内存,能否直接释放它?答案是否定的,因为a并不知道b是否还在使用这块内存,如果a释放了,那么b在使用这块 内存的时候会引起程序crash掉。2.原创 2016-11-28 10:50:23 · 243 阅读 · 0 评论 -
block的用法
X.1 初探Block在这一小节我们先用一些简单范例来导入block的概念。X.1.1 宣告和使用Block我们使用「^」运算子来宣告一个block变数,而且在block的定义最后面要加上「;」来表示一个完整的述句(也就是将整个block定义视为前面章节所介绍的简单述句,因为整个定义必须是一个完整的句子,所以必须在最后面加上分号),下面是一个block的范例:原创 2016-11-28 10:51:19 · 375 阅读 · 0 评论 -
block代码块的使用
block 代码块功能类似于 delegate 代理。即也用来由 B 对象代理完成 A 对象的事件。区别1、不用定义协议(协议名称、协议方法、代理);2、实现方法比较直观(实现代码比较紧凑,即代码块方法,紧接在对象实例化之后,避免多行空隔设置)3、定义 block 属性对象时,应用 copy 类型,而定义 delegate 对象时应用 assign 类型4、原创 2016-10-15 08:38:53 · 392 阅读 · 0 评论 -
单例模式
#import @interface BMUserInfo : NSObject+ (instancetype)shareInstance ;@end#import "BMUserInfo.h"#import static id原创 2016-09-14 15:36:29 · 240 阅读 · 0 评论 -
iOS 防止Button或Cell快速重复点击多次响应事件
方法一1.首先定义一个BOOL类型来判断是否点击了第一次:@property (nonatomic, assign) BOOL isSelect;设置self.isSelect = false;2.然后在点击事件中这样写:- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPat...原创 2019-07-19 14:50:53 · 2120 阅读 · 0 评论 -
时间处理(仿朋友圈、微博发布时间)
仿朋友圈、微博时间.png微博时间.png前言我们有时候做项目从网络回调的时间数据并不是我们想要的类型,而是,这种格式的 Sat Dec 03 19:56:38 +0800 2016 ,而我们需要转成我们需要的时间 例如: xx分钟前/xx小时前/xx天前OC主要代码及思路建立NSDate的分类,创建两个方法一个返回NSDate,一个返回我们需要的时间格式/** 获...原创 2016-12-08 09:10:28 · 1744 阅读 · 3 评论 -
IOS开发之手势——UIGestureRecognizer
在 iPhone 或 iPad 的开发中,除了用 touchesBegan / touchesMoved / touchesEnded 这组方法来控制使用者的手指触控外,也可以用 UIGestureRecognizer 的衍生类別来进行判断。用 UIGestureRecognizer 的好处在于有现成的手势,开发者不用自己计算手指移动轨迹。UIGestureRecognizer的衍生类別有以下几种...原创 2016-12-21 10:15:29 · 136 阅读 · 0 评论 -
JSON转化
#pragma mark - 字符串转化为json字典+ (NSDictionary *)dictionaryWithJsonString:(NSString *)str{ NSData *jsonDataSource = [str dataUsingEncoding:NSUTF8StringEncoding]; NSError *error; N...原创 2018-11-22 09:15:46 · 299 阅读 · 0 评论 -
删除字符串中html标签
+ (NSString *)filterHTML:(NSString *)html{ NSScanner * scanner = [NSScanner scannerWithString:html]; NSString * text = nil; while([scanner isAtEnd]==NO) { //找到标签的起始位置 ...原创 2018-11-22 09:12:49 · 383 阅读 · 0 评论 -
获取时间
/** * 获取当前年份,精确到yyyy * 例如 返回2018年 * * @return NSString */+ (NSString *)getCurrentYear{ NSDate *datenow = [NSDate date]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] ...原创 2018-11-22 09:12:10 · 262 阅读 · 0 评论 -
清除缓存
// 缓存文件路径#define CachesDirectory [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]//使用[self clearCache:CachesDirectory];/** * 计算文件大小 */+ (float)f...原创 2018-11-22 08:47:34 · 193 阅读 · 0 评论 -
给数组中的字典按照时间排序
NSArray *array = @[@{@"date": @"2018-04", @"value": @"4459.118"}, @{@"date": @"2017-06", @"value原创 2018-05-30 09:43:44 · 639 阅读 · 0 评论 -
去掉数组中相同的元素
NSArray* array = @[@"9",@"1",@"5",@"6",@"5", @"2",@"8",@"7",@"3",@"0", @"5",@"6",@"4原创 2018-04-27 15:54:38 · 327 阅读 · 0 评论 -
去掉数组中含有相同value的值的数据,数组显示value的值不同的数据
NSMutableDictionary *dic1 = [NSMutableDictionary dictionary]; [dic1 setObject:@"123" forKey:@"orgPID"]; [dic1 setObject:@"aaa" forKey:@"name"]; NSMutableDictionary *dic2 = [NSMutableDictionar...原创 2018-04-27 15:52:44 · 487 阅读 · 0 评论 -
iOS 代码块(block)的使用
代码块本质上是和其他变量类似。既可以做变量使用,也可以当函数使用。不同的是,代码块存储的数据是一个函数体。使用代码块是,你可以像调用其他标准函数一样,传入参数数,并得到返回值。脱字符(^)是块的语法标记。按照我们熟悉的参数语法规约所定义的返回值以及块的主体(也就是可以执行的代码)。下图是如何把块变量赋值给一个变量的语法讲解:按照调用函数的方式调用块对象变量就可以了。苹果官网的例子int (^Mul...转载 2016-10-15 08:38:28 · 571 阅读 · 0 评论 -
UIViewController的 dismissViewControllerAnimated:completion:方法
dismissModalViewControllerAnimated:方法.这个方法的功能是释放接受到这个消息的对象(UIViewcontroller对象). 如:[self dismissModalViewControllerAnimated:YES]; //animated的参数代表UIViewcontroller是否动态移除屏幕,默认是向屏幕下方移除屏幕外. 对象调用这个方法之...转载 2016-11-22 16:56:01 · 870 阅读 · 0 评论 -
单例模式
单例模式顾名思义就是只有一个实例,它确保一个类只有一个实例,并且自行实例化并向整个系统提供这个实例。它经常用来做应用程序级别的共享资源控制。这个模式使用频率非常高,通过一个单例类,可以实现在不同窗口之间传递数据。在objective-c中要实现一个单例类,至少需要做以下四个步骤:1、为单例对象实现一个静态实例,并初始化,然后设置成nil,2、实现一个实例构造方法检查上面声明原创 2016-11-28 10:52:11 · 247 阅读 · 0 评论 -
NSBundle详解及infoDictionary包内容
NSBundle 简介bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in)。 对应bundle,cocoa提供了类NSBundle。 我们的程序是一个bundle. 在Finder中,一个应用程序看上去和其他文件没有什么区别。 但是实际上它是一个包含了nib文件,编译代码,以及其他资源的目录原创 2016-12-07 09:22:41 · 2830 阅读 · 0 评论 -
iOS 强制转成横屏的方式
强制转成横屏:if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) { SEL selector = NSSelectorFromString(@"setOrientation:"); NSInvocation *invoca原创 2016-11-23 09:12:09 · 345 阅读 · 0 评论 -
常用的Pch
#define SCREENWIDTH [UIScreen mainScreen].bounds.size.width //宽#define SCREENHEIGHT [UIScreen mainScreen].bounds.size.height //高#define RGB(x,y,z) [UIColor colorWithRed:x/255原创 2016-11-15 16:25:16 · 386 阅读 · 0 评论 -
iOS 开发,工程中混合使用 ARC 和非ARC
【前提知识】ARC:Automatic Reference Counting,自动引用计数在开发 iOS 3 以及之前的版本的项目时我们要自己负责使用引用计数来管理内存,比如要手动 retain、release、autorelease 等,而在其后的版本可以使用 ARC,让系统自己管理内存。【问题】在项目开发过程中我们通常会用到第三方提供的源代码,麻烦的是有转载 2016-11-02 14:32:42 · 297 阅读 · 0 评论 -
iOS汉字转拼音
微信通讯录列表右侧字母表控件, 着实感觉功能强大, 查找好友只要轻轻一划, 就可以找到好友, 而无需从很长的列表划好几下, 更没必要从标签查找了. 那么问题来了, 字母和姓氏怎么对应的呢? 系统是老外写的, 不可能像新华字典一样有个目录吧? 查找官方文档, 在CoreFoundation框架中找到了CString这个文件中的CFStringTransform函数, 其实就这个函转载 2016-11-02 08:47:24 · 413 阅读 · 0 评论 -
iOS状态栏操作
1.修改状态栏类型[[UIApplication shareApplication] setStatusBarStyle:UIstatusBarstyleLightContent];2.状态栏菊花转动[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;3.状态栏菊花停止转动[UIAppl原创 2016-11-01 11:33:59 · 281 阅读 · 0 评论 -
iOS应用调用系统打电话、发短信和发邮件功能
摘要:在应用程序内,调用系统的功能来实现打电话、发短信和发邮件,通过电话号码或者邮箱,直接跳转到系统的功能界面。PS:调试好像只能真机调试,模拟器没有反应,真机就可以跳转,不知道是不是必须真机,但方法肯定是可行的。1、打电话应用内调用系统打电话有两种方式:1)WebView方式使用WebView来跳转,把电话号码通过URL原创 2016-11-12 08:54:07 · 414 阅读 · 0 评论