美文网首页
iOS 小知识相关总结

iOS 小知识相关总结

作者: 择一城终老_蜗牛 | 来源:发表于2017-11-22 11:03 被阅读0次

1.xcode8 去掉繁琐的打印

选择Product->Scheme->Edit Scheme ...或者直接按 command + shift + < 快捷键,在弹出的窗口中Environment Variables 下添加 OS_ACTIVITY_MODE disable如图:

  1. API查看

windows ->documentation and api reference

3.关于block

介绍https://bestswifter.com/oche-swiftbi-bao-dui-bi-zong-jie/

  1. 懒加载:
-(NSMutableArray *)testarray
{
    if(_testarray == nil)
    {
        _testarray = [NSMutableArray array];
    }
    return _testarray;
}

5.判断字符串中是否含有小数点 方案一:

  if ([item.ws_total_amt rangeOfString:@"."].location != NSNotFound) {
        
        NSLog(@"这个字符串中有dian");
        
        number=item.ws_total_amt;
    }else{
        number=[NSString stringWithFormat:@"%@.00",item.ws_total_amt];
    }
在用的时候 一定要 用 [self.testarray  ........] 

方案2:传送门 http://www.cnblogs.com/denz/p/5330771.html
先叙述下我遇到的问题,我的服务器传给我的是一个float的值,作为一个对外的库,由于存在版本延续,需要保留对外的flaot的类型,不改变API,选择进行内部适配。

问题引出

float a = 0.01;
int b = 99999999;
double c = 0.0;
c = a*b;
NSLog(@"%f",c);     //输出结果为 1000000.000000
NSLog(@"%.2f",c);   //输出结果为 1000000.00

//明显不够精确

在网上找到了一个国内朋友的博客也遇到和我一样的问题,他尝试了如下两种解决方案

将float强制转换为double

c = a*(double)b;
NSLog(@"%f",c);     //输出结果  999999.967648
NSLog(@"%.2f",c);   //输出结果  999999.97

// 明显已经丢失精度

通过和NSString的转换,将计算的原始数据转换为纯粹的double类型的数据,这样的计算精度就可以达到要求了

NSString *objA = [NSString stringWithFormat:@"%.2f", a];
NSString *objB = [NSString stringWithFormat:@"%.2f", (double)b];
c = [objA doubleValue] * [objB doubleValue];
NSLog(@"%.2f",c);   //输出结果  999999.99

最终方案

NSString *decimalNumberMutiplyWithString(NSString *multiplierValue,NSString *multiplicandValue)
{
     NSDecimalNumber *multiplierNumber = [NSDecimalNumber decimalNumberWithString:multiplierValue];
     NSDecimalNumber *multiplicandNumber = [NSDecimalNumber decimalNumberWithString:multiplicandValue];
     NSDecimalNumber *product = [multiplicandNumber decimalNumberByMultiplyingBy:multiplierNumber];
     return [product stringValue];
}
 
NSLog(@"%@",decimalNumberMutiplyWithString([NSString stringWithFormat:@"%f",a], [NSString stringWithFormat:@"%d",b]));

//输出结果  999999.99

6.wkwebview 一些坑 你是否踩过咧??

https://mp.weixin.qq.com/s/rhYKLIbXOsUJC_n6dt9UfA

以及这个人的网站:https://bestswifter.com/

7.单例弊端?

优点:
1:一个类只被实例化一次,提供了对唯一实例的受控访问。
2:节省系统资源
3:允许可变数目的实例。

缺点:
1:一个类只有一个对象,可能造成责任过重,在一定程度上违背了“单一职责原则”。
2:由于单利模式中没有抽象层,因此单例类的扩展有很大的困难。
3:滥用单例将带来一些负面问题,如为了节省资源将数据库连接池对象设计为的单例类,可能会导致共享连接池对象的程序过多而出现连接池溢出;如果实例化的对象长时间不被利用,系统会认为是垃圾而被回收,这将导致对象状态的丢失

8.介绍下App启动的完成过程?

  1. App启动过程
    • 解析Info.plist
    ▪ 加载相关信息,例如如闪屏
    ▪ 沙箱建立、权限检查

    • Mach-O加载
    ▪ 如果是胖二进制文件,寻找合适当前CPU类别的部分
    ▪ 加载所有依赖的Mach-O文件(递归调用Mach-O加载的方法)
    ▪ 定位内部、外部指针引用,例如字符串、函数等
    ▪ 执行声明为attribute((constructor))的C函数
    ▪ 加载类扩展(Category)中的方法
    ▪ C++静态对象加载、调用ObjC的 +load 函数

    • 程序执行
    · 1.main函数
    · 2.执行UIApplicationMain函数
    ·   1.创建UIApplication对象
    ·   2.创建UIApplicationDelegate对象并复制
    ·   3.读取配置文件info.plist,设置程序启动的一些属性,(关于info.plist的内容可网上搜索下)
    ·   4.创建应用程序的Main Runloop循环
    · 3.UIApplicationDelegate对象开始处理监听到的事件
    ·   1.程序启动成功之后,首先调用application:didFinishLaunchingWithOptions:方法,
    ·   如果info.plist文件中配置了启动storyboard文件名,则加载storyboard文件。
    ·   如果没有配置,则根据代码来创建UIWindow--->UIWindow的rootViewController-->显示

9.怎么防止反编译?

1.本地数据加密
iOS应用防反编译加密技术之一:对NSUserDefaults,sqlite存储文件数据加密,保护帐号和关键信息

2.URL编码加密
iOS应用防反编译加密技术之二:对程序中出现的URL进行编码加密,防止URL被静态分析

3.网络传输数据加密
iOS应用防反编译加密技术之三:对客户端传输数据提供加密方案,有效防止通过网络接口的拦截获取数据

4.方法体,方法名高级混淆
iOS应用防反编译加密技术之四:对应用程序的方法名和方法体进行混淆,保证源码被逆向后无法解析代码

5.程序结构混排加密
iOS应用防反编译加密技术之五:对应用程序逻辑结构进行打乱混排,保证源码可读性降到最低

相关文章

  • iOS知识体系总结-网络相关

    注意:更新内容会同步到GitHub iOSWiki-知识体系总结 总结-网络相关 iOS知识点/网络相关 #iOS...

  • iOS知识体系总结-内存相关

    注意:更新内容会同步到GitHub iOSWiki-知识体系总结 总结-内存相关 iOS知识点/内存相关 #iOS...

  • iOS面试相关

    GCD 系列知识总结 NSOperation相关知识总结 iOS Runtime详解 黑魔法 Method_Swi...

  • iOS知识体系总结-UI部分

    注意:更新内容会同步到GitHub iOSWiki-知识体系总结 总结-UI部分 iOS知识点/UI相关 #iOS...

  • iOS 小知识相关总结

    1.xcode8 去掉繁琐的打印 选择Product->Scheme->Edit Scheme ...或者直接按...

  • iOS webview 相关知识小总结

    P1,基础知识: 探秘WKWebView[https://juejin.cn/post/7025420337600...

  • iOS 移动端 安全思考与总结

    iOS 移动端 安全思考 这是一遍安全知识总结的博客,并涉及相关知识的延伸,以作知识备忘和总结。 安全相关的几个方...

  • iOS 数据持久化

    很早以前就想总结一下iOS数据存储的相关知识,今天得空总结如下: iOS常用的存储方式 1、偏好设置Prefere...

  • RunLoop 相关

    谨以此篇总结归纳记录iOS中一大知识点 RunLoop 的相关知识,以作备忘。 iOS中,提供了两种runloop...

  • iOS 手势相关知识总结

    一、手势的抽象类——UIGestureRecognizer UIGestureRecognizer将一些和手势操作...

网友评论

      本文标题:iOS 小知识相关总结

      本文链接:https://www.haomeiwen.com/subject/mfofhxtx.html