iOS

iOS 是由苹果公司开发的移动操作系统。

  • Total
  • 37840
话题聚合
  • 苹果发布iOS12.1 beta更新 暗藏许多小惊喜

    苹果发布iOS12.1 beta更新 暗藏许多小惊喜

    今日凌晨,苹果面向开发者推送了 iOS12.1 beta ,安装包大小达到了 2.3GB 左右,这相较于之前几百兆的测试版更新来说,可以看做是一次相对完整的固件升级,应该包含了一些比较重要的内容,我们一起来看看吧...以上就是 iOS12.1 beta 修复和调整的内容,已安装了 iOS12 描述文件的朋友,可直接前往“设置 >...描述文件,需先删除再安装 iOS12 描述文件)3.重启之后打开设备进入“设置>。
    2 小时前
  • iOS 12 新增的这个功能,让你知道自己在手机上花的时间去哪儿了

    iOS 12 新增的这个功能,让你知道自己在手机上花的时间去哪儿了

    随着 iOS 12 的推出,苹果在系统设置中做了一个屏幕使用时间的功能,基本解决了在 iOS 设备上追踪时间去向以及限制应用使用的问题,实现帮助「大人们」少玩 iPhone 或者 iPad 的目的...在屏幕使用时间里还有一个为屏幕使用时间设置密码的选项,当你设置成功后,你需要输入正确的密码才能更改停用时间、应用限额、始终允许、内容和隐私访问限制中的选项...通过开启家人共享中的屏幕使用时间功能,父母能够掌握孩子使用手机的情况,并且为孩子设置应用限制,能让孩子在特定时间段内(比如睡眠时间内)不得使用 App 、不得显示通知、不得访问特定的敏感内容等等。
    2 小时前
  • iOS 快速从OC过渡到Swift,由理论到实战-OC和Swift混编

    iOS 快速从OC过渡到Swift,由理论到实战-OC和Swift混编

    {???return?UserDefaults.standard.object(forKey:?Key)}func?RemoveObjectForKey(_?Key:String){????UserDefaults.standard.removeObject(forKey:?Key)????UserDefaults.standard.synchronize()}//?MARK:?--------------------------?输出?--------------------------//?带方法名、行数func?printLog(_?message:T,method:String?=?#function,line:Int?=?#line){????print("-[method:(method)]?"?+?"[line:(line)]?"?+?"(message)")}//?只在Debug下输出,为了给习惯OC输出写法的同事func?DLog(_?format:?String,?method:String?=?#function,line:Int?=?#line,_?args:?CVarArg...){//????print("-[method:(method)]?"?+?"[line:(line)]?",?separator:?"",?terminator:?"")????#if?DEBUG????????let?va_list?=?getVaList(args)????????NSLogv(format,?va_list)????#else????#endif}//?只在Debug下输出,为了为习惯PHP输出写法的同事func?echo(_?format:?String,_?args:?CVarArg...)?{????#if?DEBUG????????let?va_list?=?getVaList(args)????????NSLogv(format,?va_list)????#else????#endif}使用【扩展】功能创建一些工具颜色类extension?UIColor?{????//?RGB颜色????static?func?rgba(_?r:CGFloat,_?g:CGFloat,_?b:CGFloat,_?a:CGFloat)?->...return?rgb(CGFloat(r),?CGFloat(g),?CGFloat(b))????}????///?随机色????static?var?rand:?UIColor?{????????return?rgb(CGFloat(arc4random_uniform(255)),?CGFloat(arc4random_uniform(255)),?CGFloat(arc4random_uniform(255)))????}}字符转数字类extension?String?{????///?将字符串转换为合法的数字字符????///????///?-?Returns:?String类型????func?toPureNumber()?->...我们在用户点击事件中将对应数据回传到 OC 页面中去func?tableView(_?tableView:?UITableView,?didSelectRowAt?indexPath:?IndexPath)?{????????tableView.deselectRow(at:?indexPath,?animated:?true)????????//?我们将前十项的数据使用代理方法回传,剩余的数据使用闭包方式回传????????if?indexPath.row?>。
    3 小时前
  • iOS 快速从OC过渡到Swift,由理论到实战-Swift基础

    iOS 快速从OC过渡到Swift,由理论到实战-Swift基础

    Int?{????var?total:?Int?=?0????//?和OC实现不定参数不同,Swift已将不定参转换为数组????for?number?in?numbers?{????????total?+=?number????}????return?total}print("(sumFunc2(1,2,3,4,5))")?//?输出?15/*?输入输出参数?如果你想要一个函数可以修改参数的值,并且想要在这些修改在函数调用结束后仍然存在,那么就可以将这个参数定义为输入输出参数?这有点类似OC中常见的NSError的使用,他们的本质是接受一个地址,直接操作内存地址进行修改和访问?可是使用?inout?关键字来定义输入输出参数,需要注意的是,在新版本中,已经将?inout?放在了?'参数名:'?后面,而不是前面?*/func?swapTwoObj(_?a:?inout?String,?_?b?:?inout?String)?{????(a,?b)?=?(b,?a)}var?str1?=?"123"var?str2?=?"456"swapTwoObj(&...class?Person?{????//?Swift中一个不继承于任何其他基类,那么此类本身就是一个基类????//?定义属性,Swift中有两种属性,一个是计算属性,一种是存储属性????//?实例属性????var?name:String?????//?存储属性????var?height?=?0.0????//?存储属性????var?info:?String?{??//?计算属性????????return?"(name)"?+?"(height)"????}????//?类型属性????static?var?address?=?"fuzhou"????//?懒加载,必须是变量,并且需要一个初始值????lazy?var?data:?[String]?=?[String]()????//?构造方法,注意如果不编写构造方法,默认自动创建一个无参数的构造方法????init(name:String?,height:Double)?{????????self.name?=?name????????self.height?=?height????}????//?遍历构造器,提供默认值来简化构造方法实现????convenience?init(name:String)?{????????self.init(name:?name,?height:?170.0)????}????//?定义方法????//?实例方法????func?showMessage()?{????????print("name=(self.name),height=(height)")????}????//?类型方法,结构体中使用?static?关键字????class?func?sayHello()?->...a. 枚举语法使用 enum 关键字来创建枚举enum?SomeEnumeration?{????//?枚举定义放在这里}示例//?单行enum?Season{????case?spring,?summer,?autumn,?winter}//?多行,并指定原始值enum?Week:?Int?{????case?monday?????=?1????case?tuesday????=?2????case?wednesday??=?3????case?thursday???=?4????case?friday?????=?5????case?saturday???=?6????case?sunday?????=?7}print("(Week.friday)")?????????????//?输出?fridayprint("(Week.friday.rawValue)")????//?输出?5枚举类型也可以拥有一些结构体的特性,如计算属性、构造方法、方法等enum?Week:?Int?{????case?monday?????=?1????case?tuesday????=?2????case?wednesday??=?3????case?thursday???=?4????case?friday?????=?5????case?saturday???=?6????case?sunday?????=?7????//?定义计算属性(枚举中不能使用存储属性)????var?tag:?Int?{????????return?self.rawValue????}????//?定义类型计算属性????static?var?enumName:String?{????????return?"Week"????}????//?定义实例方法????func?showRowValue()?{????????print("(self.rawValue)")????}????//?定义类型方法????static?func?showInfo()?{????????print("Enum?name?is?(Week.enumName)")????}????//?定义构造方法,因为可能构造失败返回nil,因此需要返回值为可选类型????init。
    3 小时前
  • iOS12.1新发现:Memoji将支持iCloud同步

    虽然 iOS 12 的正式版本刚刚发布不久,但是苹果似乎从未停止新软件的开发,因此苹果已经允许开发者和测试人员开始提交 bug 报告,并对新特性进行测试,包括人们期待已久的 FaceTime 群聊...根据外媒 9to5Mac 的报道,苹果在这个最新的 beta 中引入了一个新的 avatarsd 后台程序,这个后台程序将用于处理 Memoji 通过 iCloud 存储和同步的工作...展望未来,苹果为 Memoji 引入 iCloud 同步功能是有意义的,有传闻称,苹果将在今年晚些时候发布支持 Face ID 的 iPad Pro 机型,如果传闻属实,iPhone 和 iPad Pro 将可以实现更加无缝的衔接。
  • iCab 使用详解:打造 iOS 最佳备用浏览器

    用户 ID(User Agent)是浏览器的「身份证」,iCab 可以让你自己设置用户 ID,从而把自己「伪装」成其他浏览器,实现一些移动端浏览器难以完成的功能,比如查看完整的知乎页面、下载有操作系统需求的文件安装包等等...如果你想在 iOS 设备上把付费文章(比如现在这个页面 ??)保存进 DEVONthink,就可以用上 iCab 的「保存网页」功能,下载好后直接从 Files 的 iCab 文件夹中把文件拖到 DEVONthink 文件夹...通过用户 ID 把 iCab「伪装」成其他浏览器,就能完成许多桌面浏览器或特殊操作系统才能实现的功能,比如查看完整的知乎回答、避免网页强制打开购物应用,等等。
  • 我将所有iPhone都升级至iOS 12:值不值得???

    我将所有iPhone都升级至iOS 12:值不值得???

    点开视频,给你好看: (B 站)随着 iPhone XS 系列和 XR 发布,iOS 12 正式版如今也到来了,虽然新 iPhone 很贵买不起,但 iOS 12 难道还升不起吗...在 iOS 12 里,通知中心的改进很大,可能大家还记得,在以前的 iOS 中,消息都是一大堆陈列在上面,有些许杂乱不堪,看的心里很不爽,但如今,你的通知中心就要整齐多了,因为你可以按照应用分类来堆栈通知消息,一眼望过去的时候就不会感到懵逼了...其实 iOS 12 还有很多小改进和新功能,例如 iPhone X 的 Face ID 如今可以录入第二张脸。
    6 小时前
  • 除了流畅,这个功能也值得你更新 iOS 12

    除了流畅,这个功能也值得你更新 iOS 12

    据雷锋网(公众号:雷锋网)编辑了解,针对苹果此次CarPlay车载支持第三方导航App,搜狗地图也榜上有名...但是,由于苹果方面没有给出相关权限,搜狗地图CarPlay车载版本现在并不支持直接语音唤醒...雷锋网编辑了解到,针对此次搜狗地图CarPlay版本尚不支持语音唤醒,搜狗地图官方也表示,会在未来苹果开放接口后及时接入。
    6 小时前
  • 黑猫投诉iOS客户端正式上线 助你随时随地消费维权

    如何能更好地在手机上进行投诉维权也成了用户越来越强烈的需求,黑猫投诉在用户需求不断增强的背景下推出了自己的客户端,这既可以使黑猫投诉更加贴合用户使用习惯,也方便用户实时追踪投诉单的解决进展情况...黑猫投诉平台为新浪网旗下消费者投诉平台,借助新浪网的强大影响力和公信力,同时有京东、苏宁、街电等合作企业承诺24小时响应,可使消费投诉得到极速解决...黑猫投诉客户端的上线,更加贴合用户使用习惯,使用户可以更加方便快捷地在手机上进行消费投诉,维护自身权益。
  • 告别卡顿 iOS 12正式版发布性能大幅提升

    告别卡顿 iOS 12正式版发布性能大幅提升

    中关村在线消息:9月18日凌晨,苹果向iPhone用户推送了iOS 12正式版更新,早在6月份的WWDC 2018大会上苹果就公布了iOS 12测试版,时隔三个月随着正式版的发布,苹果不仅修复了很多bug,很多旧版iPhone如iPhone 6s等,都再次崛起,流畅度翻了一番,一改往日iPhone用户更新系统后感觉卡顿的通病...本文属于原创文章,如若转载,请注明来源:告别卡顿 iOS 12正式版发布性能大幅提升http://mobile.zol.com.cn/698/6984224.html...中关村在线消息:9月18日凌晨,苹果向iPhone用户推送了iOS 12正式版更新,早在6月份的WWDC 2018大会上苹果就公布了iOS 12测试版,时隔三个月随着正式版的发布,苹果不仅修复了很多bug,很多旧版iPhone如iPhone 6s等,都再次崛起,流畅度翻了一番,一改往日...。
  • iOS:?;pp不闪退

    iOS:?;pp不闪退

    Unrecognized Selector Sent to Instance由于Objective-c是Message机制,而且对象在转换的时候,会有拿到的对象和预期不一致,所以会有方法找不到的情况,在找不到方法时,查找方法将会进入方法Forward流程,系统给了三次补救的机会,所以我们要解决这个问题,在这三次均可以解决这个问题resolveInstanceMethod:(SEL)sel 这是实例化方法没有找到方法,最先执行的函数,首先会流转到这里来,返回值是BOOL,没有找到就是NO,找到就返回YES,如果要解决就需要再当前的实例中加入不存在的Selector,并绑定IMP,示例如下:static?void?xxxInstanceName(id?self,?SEL?cmd,?id?value)?{????NSLog(@"resolveInstanceMethod?%@",?value)...还可以流转到多个对象,[anInvocation invokeWithTarget:xxxtarget2]是为了让不存在的方法有着陆点doesNotRecognizeSelector:(SEL)aSelector 执行到这里的时候,两种情况:当methodSignatureForSelector返回一种任意的方法签名的时候,也会进入doesNotRecognizeSelector,但是不会闪退当methodSignatureForSelector返回nil时,进入doesNotRecognizeSelector就会闪退根据以上流程,最终还是选择流程2,原因如下:resolveInstanceMethod虽然可以解决问题,给不存在的方法增加到示例中去,会污染当前示例forwardInvocation在三步中式最后一步,会导致流转的周期变长,而且会产生NSInvocation,性能不是最好的选择如何监听实例化对象什么时候释放先说下这个知识点,因为在接下来的好几个地方都会用到,会有一些异常的情况,所以需要一种知道当前创建者啥时候释放,首先会想到dealloc,这样会Hook的NSObject,在一定程度会影响性能,后面发现一种比较优雅的方法,原理来自于Runtime源码:/***********************************************************************...if?(index?Zombie Pointer让野指针不闪退是模仿了XCode debug的Zombie Object,也参考了网易和美团的做法,主要是以下步骤:Hook住dealloc方法如果当前示例在黑名单里,就把当年前示例加入集合,并把当前对象objc_destructInstance清理引用关系,并未真正释放内存,并将object_setClass设置成自己的中间对象Hook中间对象的方法,收到的消息都由中间对象来处理维护的野指针集合,要么根据个数来维护,要么根据总大小来维护,当满了,就需要真正释放对象内存free(obj)存在的问题:需要单独的内存那些问题对象最后释放内存后,再访问时会闪退,这个方法只是一定程度延迟了闪退时间需要后台维护黑名单机制,来指定那些问题对象KVOKVO在以下情况会导致闪退:添加监听后没有清除会导致闪退清除不存在的key也会闪退添加重复的key导致闪退需要Hook以下方法:addObserver:forKeyPath:options:context:removeObserver:forKeyPath:主要解决以下问题:在注册监听后,中间对象需要维护注册的数据集合,当宿主释放时,清除还在集合中的监听者?;ey不存在的情况?;ぶ馗刺砑拥那榭鯪STimerNSTimer存在以下问题:Target是强引用,内存泄漏在宿主不存在的时候,清理NSTimerHook以下方法:scheduledTimerWithTimeInterval:target:selector:userInfo:repeats解决方法: 1.当repeats为NO时,走原始方法 2.当repeats为YES时,新建一个对象,声明一个target属性为weak类型,指向参数的target,当中间对象的target为空时,清理NSTimerNSNotificationNSNotification的主要问题是:添加通知后,没有移除导致Crash的问题(不过在iOS9以后没有这个问题,我在真机8.3测试也没有这个问题,不知道iOS8是否有这个问题)Hook以下方法:addObserver:selector:name:object:原因和解决办法: 问题就在在于和assign和weak问题,野指针问题,要么置空指针或者删除空指针的集合MRC这里单独说下,为什么工程选择了MRC,因为在Hook集合类型的时候,启动的时候就闪退了,Crash的地方在系统类里,Stack里显示在CF这层,这里只能猜测系统底层对ARC的支持不好导致的,后续改成MRC就没有问题,所以这个需要继续研究和追踪,如果有知道的同学记得告知我下性能本来是没有打算注意性能这个问题的,因为从Hook原理的角度来说,只是交换IMP的指向,时间复杂度来说,只是在系统级别上增加了几条逻辑判断指令,所以这个影响是极小的,基本可以忽略,我经过测试,循环1000000次,没有HOOK和HOOK相差0.0x秒的,所以减少Crash,来增加这么点时间复杂度来说,是值得的。
    8 小时前
  • [图]完全使用Swift编写的Telegram X即将面向所有iOS用户开放

    [图]完全使用Swift编写的Telegram X即将面向所有iOS用户开放

    虽然目前尚不清楚稳定版何时被完全替代,但是Telegram的首席执行官、联合创始人Pavel Durov今天宣布主iOS APP将接收所有实验版本的改进...图片来自于 TelegramPavel Durov在自己的个人频道中宣布,iOS端官方Telegram应用即将被正在测试的版本所替代,目前尚不清楚这是否意味着这些实验版本就此终结...Durov表示,完全使用Swift语言进行编写让Telegram成为了最受欢迎的信息应用,带来了更快的速度、更流畅的性能,并减少了对设备电池寿命的影响。
    8 小时前
  • iOS轻松获取当前控制器的正确方式

    iOS轻松获取当前控制器的正确方式

    背景在开发过程中,经常需要获取当前 window, rootViewController, 以及当前 ViewController 的需求. 如果 .m 实现不是在当前视图情况下, 我们需要快速的获取到当前控制器, 这种情况就需要先做好一层封装,我一般是通过 UIViewController 写的一个 Category 来实现, 实现起来也非常简单, 只需要我们对 控制器几个方法掌握便可...获取当前页面控制器+?(UIViewController?*)jsd_getCurrentViewController{????UIViewController*?currentViewController?=?[self?jsd_getRootViewController]...}这里讲一下实现思路, 我们想要与控制器无耦合的情况下, 想要直接获取到当前控制器, 基本都是通过 rootViewController 来查找的, 通过上面的方法拿到 rootViewControoler 之后, 我们先看 presentedViewController, 因为控制器呈现出来的方式有 push 与 present, 我们先查看它是否是 present 出来的, 如果是则通过此属性能找到 present 出来的当前控制器, 然后在检查是否属于 UINavigationControler 或 UITabBarController ,如果是则通过查找其子控制器里面最顶层或者其正在选择的控制器。
    8 小时前

相关荟聚号

必威体育 www.langqinqh.com 为你定制的专属美丽

相关链接

为你发现的专属好站