在NSLog中,没有新行表示没有打印新行。这是因为在iOS和macOS中,NSLog()函数已经被弃用,并且已经被NSLog()函数所取代。在NSLog()函数中,没有新行表示没有打印新行。因此,在NSLog中,没有新行。
利用UIActivityViewController实现系统原生分享,不需要三方SDK,支持自定义分享,可以分享到微博、微信、QQ、信息、邮件、备忘录、通讯录、剪贴板、FaceBook.....等等
在多线程开发中,我们常用到GCD,这里探讨一下GCD任务的取消: 1.在iOS 8以后,系统给我们提供了这样的取消函数 dispatch_block_cancel,不过这个也只能用于dispatch_block_create创建的dispatch_block_t,我们试验一下:
慢网时,页面内通过按钮等控件跳转可能会出现报错(即使视觉上网页跳转并加载成功)。这是由于当一个按钮点击跳转另一个网页时,会走网页加载错误的代理方法。而走代理方法的原因是因为上一个URL还没完全加载完全,就开始下一个URL的请求,就会走该代理方法。
好像是macOS10.10之后,以及iOS8之后,新出现的WKWebview组件就迅速的替代了Webview及UIWebView。后者的确存在一些无法解决的bug,诸如架构导致的速度缓慢和内存泄漏。 但无法避免的问题总是有的,比如有些客户端软件,仍然要求兼容老版本的系统,这时候,很不想使用,但也不得不仍然把Webview塞到自己的代码中。 互联网是个喜新厌旧的圈子,网上搜索,几乎只有两类。一是WKWebview的文档,二是iOS类的文档。想要的macOS下面Webview的资料缈如黄鹤。 经过部分只言
KVO(key value observing)键值监听是我们在开发中常使用的用于监听特定对象属性值变化的方法,常用于监听数据模型的变化
译文篇: Face ID和Touch ID 尽可能支持生物识别。Face ID和Touch ID是人们信任的安全,熟悉的身份验证方法。如果用户启用了生物认证,您可以假定他们了解其工作原理,欣赏其方便性
现在市面上流行着三家大的操作系统——Windows、MacOS、Linux,其他的操作系统在他们面前都显得无比渺小,特别是这三家系统已经形成了自己的生态系统,除非自己作死,不然在未来很长一段时间都会呈现这种三足鼎立的状态。
根据上一篇文章的总结,我们很容易发现 @interface Student : NSObject { @public int _age; int _no; } 一个Student对象在64位架构下占了16个字节,其中isa占8个字节,两个int变量分别占了4个字节,但是这种方式适合所有OC对象吗??哈哈,并不是。。。 今天早上有朋友问NSNumber为啥占用8个字节(64bit),请看NSNumber头文件,发现如下代码: @property (readonly) char char
对于子类 B重写父类 A方法 method2在 iOS6.0之后才可以用是错误的,因为父类方法是可以在 iOS5.0就可以用的。
最近看了两本书,《Objective-C 高级编程,iOS与OS X多线程和内存管理》,《Effective Object-C2.0》。iOS开发必看的两本书,非常推荐。但是看内存管理的时候有一句话非常不理解:自己生成并持有对象,引用计数为1。后面还有一句:对象alloc的时候默认引用计数为1。自己创建的时候,如果默认是1,那么自己再持有他,要再加1,这时候就是2了。但是实际结果是1。查看了很多资料,我的理解是:创建对象的时候默认为0,引用计数,顾名思义就是引用该对象的计数。强引用一次,引用计数+1。不再引
最近研究了iOS下连接蓝牙打印机,实现打印购物小票的功能,对iOS中BLE 4.0的使用有了一定的了解,这里记录一下对BLE 4.0的理解。 由于很多文章同时讲CBCentralManager和CBPeripheralManager,所以很容易傻傻分不清楚。很少把iPhone作为蓝牙外设在广播发送数据的情形,今天我就从iOS app开发的角度讲一些BLE 4.0的使用。
你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里 转载请注明出处 https://cloud.tencent.com/developer/user/1605429 本系列文章主要讲解iOS中多线程的使用,包括:NSThread、GCD、NSOperation以及RunLoop的使用方法详解,本系列文章不涉及基础的线程/进程、同步/异步、阻塞/非阻塞、串行/并行,这些基础概念,有不明白的读者还请自行查阅。本系列文章将分以下几篇文章进行讲解,读者可按需查阅。 iOS
有关Runtime的知识总结,我本来想集中写成一篇文章的,但是最后发现实在是太长,而且不利于阅读,最后分成了如下几篇:
在iOS7后,NSURLSession基本代替了NSURLConnection进行网络开发,在iOS9后,NSURLConnection相关方法被完全的弃用,iOS系统有向下兼容的特性,尽管NSURLConnection已经被弃用,但在开发中,其方法依然可以被使用,并且如果需要兼容到很低版本的iOS系统,有时就必须使用NSURLConnection类了。
IOS中有一个类型是SEL,它的作用很相似与函数指针,通过performSelector:withObject:函数可以直接调用这个消息。但是perform相关的这些函数,有一个局限性,其参数数量不能超过2个,否则要做很麻烦的处理,与之相对,NSInvocation也是一种消息调用的方法,并且它的参数没有限制。这两种直接调用对象消息的方法,在IOS4.0之后,大多被block结构所取代,只有在很老的兼容性系统中才会使用,简单用法总结如下:
为了给字符串数组排序,除了用C/C++的基本办法,iOS开发者更应该学会利用苹果专门为NSArray 排序提供的sortedArrayUsingComparator 方法:
前言 ---- 多线程很多开发者多多少少相信也都有了解,以前有些东西理解的不是很透,慢慢的积累之后,这方面的东西也需要自己好好的总结一下。多线程从我刚接触到iOS的时候就知道这玩意挺重要的,但那时也是能力有限,没办法很好的理解它,要是只是查它的概念性的东西,网上一搜一大把,我们再那样去总结就显得意义不大了。这篇文章从我刚开始构思着去写的时候,就希望自己能换个角度去写,想从实际问题出发总结多线程,那就从第三方以及自己看到的一些例子还有前段时间读的多线程和内存管理的书中分析理解总结一下多线程。 这几
我们很高兴宣布.NET Core 3.1的发布。实际上,这只是对我们两个多月前发布的.NET Core 3.0的一小部分修复和完善。最重要的是.NET Core 3.1是长期支持(LTS)版本,并且将支持三年。和过去一样,我们希望花一些时间来发布下一个LTS版本。额外的两个月(在.NET Core 3.0之后)使我们能够选择和实施在已经非常稳定的基础上进行的正确改进。
导语 :这绝不仅仅是一篇 WWDC 2017 Session 411 学习笔记。除了有关 LLVM 9.0 的新特性之外,还有关于静态分析器和 Clang 5 Objective-C ARC 的一点看
在系统控制台显示日志信息运行应用程序时是最早调试机制之一,利用log你可以查看应用程序的运行记录,当程序运行完毕,你可以长时间查看。此外,您的应用程序运行期间,可以观察所产生并写入到控制台,在您的应用程序它们所描述正在发生的事件的日志消息。作为一个开发者你是用NSLog的在console中显示的文本和信息的完全控制权,log可以发现即使是最难查找一个应用程序的问题.
领取专属 10元无门槛券
手把手带您无忧上云