首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    WWDC22:Runtime 的性能优化和 App 减包

    编码,通过 Xcode 编写代码 编译,使用了 Swift 和 Clang 编译器 运行,通过 Swift 和 Objective-C 运行时中完成 此次的这些关键优化其实就是在第三步骤运行时来完成的...: String { return "\(self.name), on \(self.date)" } } 看上面代码,因为 log 函数的参数需要输出字符串...,所以在输出前要先判断这个 value 是否遵循 CustomLoggable 协议,Swift 是静态语言,所以一般来说这样的检查都是发生在编译时期。...主要包含了两个过程 进程外(启动前)和进程内(启动后),我们来看启动前做了那些事情 进程外 Mach-O 分析器和编译器 (out-of-process mach-o parser) dyld 3 中将采用提前写入把结果数据缓存成文件的方式构成一个...init]; dateComponents.year = 2022; dateComponents.month = 2022; dateComponents.day = 2022; S // 把日期转换为

    92120

    iOS开发——带有暂停功能的计时器

    //开始和结束时间列表 lazy private var startTimes = [NSDate]() lazy private var endTimes = [NSDate]()...,直接将View层要显示的Label绑定进来,timer即为一个计时器,顺便定义了两个数组,用来记录时间,因为在真实环境中,可能有若干次暂停,所以用数组来存储。...timeNumber即为计时器中的总秒数,用Swift的didSet特性来监听属性的变化,当秒数发送变化时,讲秒数转化成时间的标准格式,并且赋值给timeString,同理,timeString也在属性发送变化时...最后再把前面那个秒数转格式化时间的方法也贴出来吧。...//从以秒计时的时间里获得表示时间的字符串用于显示 func getTimeStringFromSecond(seconds: Int) -> String { let secondNumber

    1.6K10

    iOS动态View的探索

    但如果要把已有的Native 页面转CRN,复杂的核心页面成本会有点高。在不增加人手的情况下,要想同时进行业务的迭代和CRN 的转换,会有点力不从心。 如果硬转,周期会很长。...以携程酒店主流程页面之一的订单详情页为例,在没有额外增加人手的情况下,前后花了几个月时间,才陆陆续续完成了90% 的功能转CRN,过程尤为艰辛。...JSValue JSValue 则是一个 JavaScript 数据类型在 Objective-C 或 Swift 中的包装对象,借助于这个对象我们可以在 Native 代码和 JavaScript 代码之间互相传值...language=objc) ) Array [NSDate](https://developer.apple.com/documentation/foundation/nsdate?...,根对象会包含一个 Subview 数组,数组中的每个元素都有可能是另外一组 UI 对象,当然实际操作中并不建议层次太多,一般 1-2 层。

    78640

    动手写个 JSON-Model Mapping 库

    Swift 在 JSON解析方面有个比较有名的第三方库——SwiftyJSON,之前我也一直用的它。...NSJSONSerialization.JSONObjectWithData(...)方法,如果 data 能被反序列化成一个 AnyObject 类型的对象的话,就调用另一个构造器,把这个对象赋值给实例属性...object的值进行类型转化后赋值给JSON中的一个特定类型的私有属性,譬如是数组的话就赋值给rawArray,是字符串的话就赋值给rawString,等等。...别的当然还有一些内容,譬如自定义下标,实现各种协议(字符串字面量协议、判等协议、比较协议、打印协议等等),代码很优雅,但似乎没有我想要的东西。..."" var count = 0 var posts = [] } class PostModel: NSObject { var id = 0 var date = NSDate

    1.2K30

    iOS-Foundation框架中常用的类

    str1与str2指向相同的地址 注意:存储在常量区的数据不会被回收. 所以存储在常量区的字符串对象也不会被回收. NSString类的常用方法 使用拼接的方式创建1个NSString对象。...将C语言的字符串转换为OC字符串对象。 + (instancetype)stringWithUTF8String:(NSString *)string; 将OC字符串对象转换为C语言的字符串....将字符串中第1个参数替换为第2个参数.原来的指针指向字符串的内容是不会变的,新串是以方法的返回值返回的.如果串1中有多个相同的被替换的串,会全部替换。...*)stringFromDate:(NSDate *)date; //将日期类型换换为字符串 - (NSDate *)dateFromString:(NSString *)string;//将字符串转换为日期对象...注意: NSDate取到的时间是格林威治的时间,而NSDateFormatter转换成字符串以后,会自动转换为当前系统的时区的时间。

    1.7K100

    OC知识--Foundation框架详尽总结之『数字、结构体、日期、文件类』

    NSNumber *)numberWithBool:(BOOL)value; 示例 int age = 10; double number= 5.1; int value = 6; // 将基本数据类型转换为对象类型...将对象类型转换为基本数据类型 int age = [ageN intValue]; NSLog(@"age = %d", age); 输出结果:age = 10 4....NSRange 没有CGRange NSRange表示事物的一个范围,通常是字符串里的字符范围或者数组里的元素范围 NSRange有2个成员 NSUInteger location : 表示该范围的起始位置...NSValue 我们有时候需要将结构体存储在集合中,但不能直接坐到。 Foundation提供了NSValue类将结构体转换为对象,并把它存储在集合中。...NSDate NSDate可以用来表示时间,可以进行一些常见的日期\时间处理 一个NSDate对象就代表一个时间 [NSDate date]返回的就是当前时间,注意此时间是世界标准时间,准确时间应加上当前时区与世界标准时间的偏移量

    59740

    干货 | 携程酒店iOS动态View的探索

    但如果要把已有的Native页面转CRN,复杂的核心页面成本会有点高。在不增加人手的情况下,要想同时进行业务的迭代和CRN的转换,会有点力不从心。 如果硬转,周期会很长。...以携程酒店主流程页面之一的订单详情页为例,在没有额外增加人手的情况下,前后花了几个月时间,才陆陆续续完成了90%的功能转CRN,过程尤为艰辛。...JSValue JSValue则是一个JavaScript数据类型在Objective-C或Swift中的包装对象,借助于这个对象我们可以在Native代码和JavaScript代码之间互相传值,这两者之间的对应关系如下图所示...(Swift Array) Array NSDate Date Objective-C or Swift object (id or AnyObject)Objective-C or Swift class...,根对象会包含一个Subview数组,数组中的每个元素都有可能是另外一组UI对象,当然实际操作中并不建议层次太多,一般1-2层。

    77620

    iOS 每天某些时间点做某些事情

    开篇 我们项目启动的时候要弹出一个广告窗口,很简单的一个功能,服务器的判断一下满足条件,即返回数据,客户端判断数据部位NULL,则弹出弹窗 但是老板说,这个要时间短弹出,每天的中午12点到下午2点不能弹出来...date]]; // 定义一个NSDateComponents对象,设置一个时间点 NSDateComponents *dateComponentsForDate = [[...dateComponentsForDate]; return [dateFromDateComponentsForDate timeIntervalSince1970]; } 获取时间,并转换为字符串...[GDDateUtil stringFromDateSetDateFormat:xxx] /** * 获取时间,并转换为字符串 * * @return return 返回字符串 */...+ (NSString *)stringFromDateSetDateFormat:(NSString *)formatString { NSDate *date =[NSDate date]

    81260

    创建CALayer2. 设置时分秒针3. 创建CADisplayLink4. 成稿

    0表示在最左边或者最上边,1表示在最右边或者最下边。有点模糊是不?再来张图就更清楚了: ? 锚点示意图1.png ? 锚点示意图2.png 咱们刚才绘制的秒针实际就是一个宽1,长60的一个View。...咱们要让它旋转起来的时候围绕着一个点转,就要把那个点用图钉钉上。这个图钉的位置就是锚点,就是我们在代码中设置的(0.5,1). 3....核心动画的时候,最好使用CADisplayLink 3.2 获取时间及时区 在clockRunning这个方法中,我们要设置时区,获取日历、当前时间。 在和时间打交道的时候,请千万别忘记了时区。...*currentDate = [NSDate date]; //设置日历的时区 [calendar setTimeZone:tZone]; //取出当前的时分秒 NSDateComponents...Paste_Image.png OC和Swift的下载地址如下: https://git.oschina.net/atypical/clock.git iOS实践:带时分秒指针的时钟动画(OC和Swift

    96810

    iOS16 和 Xcode14 如何改进 App 大小和运行时性能

    第一,用 Xcode 进行 build 时,其实是 Swift 和 Clang 编译器在工作,而当你 run app 时,很多繁重的工作是由 Swift 和 Objective-C 运行时完成。...dyld2 执行过程是 in-process,也就是在程序进程内执行的,也就是说只有当应用程序被启动的时候,dyld2 才能开始执行任务; dyld3 则是部分 out-of-process,部分 in-process...而且在纯 Swift 项目中,协议无处不在,这种优化相对更明显。...在高代码层面(比如业务层面,应用层),当我们复制指向某个对象的指针时,需要增加对象的引用计数,让该对象保持活跃的引用状态(copy方法就会做这个事)。...之后的某个时间点被释放,还是保证在 return 之后再 release),就好办,因为它允许我们先返回这个临时对象。

    4K30
    领券