首页 文章 精选 留言 我的

精选列表

搜索[Swift开发],共10000篇文章
优秀的个人博客,低调大师

[Android Pro] Swift 3.0多线程

本文只介绍Grand Central Dispath(GCD) 中央调度 个人认为一个GCD就够用了,可能是改版或是其他的在找之前写的多线程方法时发现不能用了,看文档之后发现改了,现在看上去更加简单易用。 1 2 3 4 5 6 7 8 DispatchQueue . global (). async { print ( "开始执行异步任务" ) Thread . sleep ( forTimeInterval : 2 ) print ( "异步任务执行完毕" ) DispatchQueue . main . async { print ( "回到UI线程" ) } } 分类: Mac OS 本文转自demoblog博客园博客,原文链接http://www.cnblogs.com/0616--ataozhijia/p/6932140.html如需转载请自行联系原作者 demoblog

优秀的个人博客,低调大师

iOS - Swift NSRect 位置和尺寸

前言 结构体,这个结构体用来表示事物的坐标点和宽高度。 public typealias NSRect = CGRect public struct CGRect { public var origin: CGPoint public var size: CGSize public init() public init(origin: CGPoint, size: CGSize) } 1、NSRect 结构体变量的创建与调用 // NSRect 结构体变量的创建与赋值 // 先定义变量,再赋值 var rect1:NSRect = NSRect() rect1.origin.x = 6; rect1.origin.y = 1; rect1.size.width = 1; rect1.size.height = 6; // Int 型值 let rect2:NSRect = NSRect(x: 1, y: 2, width: 5, height: 6) // Double 型值 let rect3:NSRect = NSRect(x: 2.1, y: 3.2, width: 6.3, height: 7.4) // CGFloat 型值 let rect4:NSRect = NSRect(x: 3.1, y: 4.2, width: 7.3, height: 8.4) // 由方法创建 let rect5:NSRect = NSMakeRect(4.1, 5.2, 6.3, 7.4) // 由方法创建 let rect6:NSRect = CGRectMake(5.1, 6.2, 7.3, 8.4) // NSRect 结构体变量值的调用 print("\(rect1.origin.x), \(rect1.origin.y), \(rect1.size.width), \(rect1.size.height)") 2、NSRect 与 String 的相互转换 let rect1:NSRect = NSMakeRect(4.1, 5.2, 6.3, 7.4) // NSRect 转 String let string:String = NSStringFromRect(rect1); // String 转 NSRect let rect:NSRect = NSRectFromString(string);

优秀的个人博客,低调大师

iOS - Swift NSTimer 定时器

前言 public class NSTimer : NSObject 作用 在指定的时间执行指定的任务。 每隔一段时间执行指定的任务。 1、定时器的创建 当定时器创建完(不用 scheduled 的,添加到 runloop 中)后,该定时器将在初始化时指定的 ti 秒后自动触发。 scheduled 方式: 创建并启动定时器。 默认将时钟以 NSDefaultRunLoopMode 模式添加到运行循环。 发生用户交互的时候,时钟会被暂停。 /* public class func scheduledTimerWithTimeInterval(ti: NSTimeInterval, target aTarget: AnyObject, selector aSelector: Selector, userInfo: AnyObject?, repeats yesOrNo: Bool) -> NSTimer 参数: TimeInterval:触发时间,单位秒 target:定时起触发对象 selector:定时器响应方法 userInfo:用户信息 repeats:是否重复执行,YES 每个指定的时间重复执行,NO 只执行一次 */ // 创建并启动定时器 let timer:NSTimer = NSTimer.scheduledTimerWithTimeInterval(2.0, target: self, selector: #selector(ViewController.updateTimer(_:)), userInfo: nil, repeats: true) timer 方式: 创建定时器,添加到运行循环后启动定时器。 将时钟以指定的模式添加到运行循环。 /* + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repeats:(BOOL)yesOrNo; - (void)addTimer:(NSTimer *)timer forMode:(NSString *)mode; mode: NSDefaultRunLoopMode: 时钟,网络。 发生用户交互的时候,时钟会被暂停 NSRunLoopCommonModes: 用户交互,响应级别高。 发生用户交互的时候,时钟仍然会触发,如果时钟触发方法非常 耗时,使用此方式时用户操作会造成非常严重的卡顿。 */ // 创建定时器 let timer:NSTimer = NSTimer(timeInterval: 2.0, target: self, selector: #selector(ViewController.updateTimer(_:)), userInfo: nil, repeats: true) // 将定时器添加到运行循环 NSRunLoop.currentRunLoop().addTimer(timer, forMode: NSRunLoopCommonModes) 2、定时器的启动与关闭 // 启动定时器 timer.fireDate = NSDate.distantFuture() // 暂停定时器 timer.fireDate = NSDate.distantPast() // 关闭定时器,永久关闭定时器 timer.invalidate() 3、子线程定时器的创建 在子线程创建定时器时,需要手动开启子线程的运行循环。 dispatch_async(dispatch_get_global_queue(0, 0)) { // 在子线程创建定时器 /* scheduled 或 timer 方式创建 */ let timer:NSTimer = NSTimer(timeInterval: 2.0, target: self, selector: #selector(ViewController.updateTimer(_:)), userInfo: nil, repeats: true) NSRunLoop.currentRunLoop().addTimer(timer, forMode: NSRunLoopCommonModes) // 启动子线程的运行循环 /* 这句代码就是一个死循环!如果不停止运行循环,不会执行添加到此句之后的任何代码 */ CFRunLoopRun() // 停止子线程运行循环之前,不会执行添加到此处的任何代码 } var num:Int = 0 func updateTimer(timer:NSTimer) { num = num + 1 // 满足条件后,停止当前的运行循环 if (num == 8) { // 停止当前的运行循环 /* 一旦停止了运行循环,后续代码能够执行,执行完毕后,线程被自动销毁 */ CFRunLoopStop(CFRunLoopGetCurrent()) } } 4、定时任务 1)performSelector // 延时调用 /* 1.5 秒后自动调用 self 的 hideHUD 方法 */ self.performSelector(#selector(NsTimer.hideHUD), withObject: nil, afterDelay: 1.5) // 取消延时调用 NSObject.cancelPreviousPerformRequestsWithTarget(self, selector: #selector(NsTimer.hideHUD), object: nil) 2)GCD // 多线程 /* 1.5 秒后自动执行 block 里面的代码 */ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(1.5 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) { self.hud.alpha = 0.0; } 3)NSTimer // 定时器 /* 1.5 秒后自动调用 self 的 hideHUD 方法 */ NSTimer.scheduledTimerWithTimeInterval(1.5, target: self, selector: #selector(NsTimer.hideHUD), userInfo: nil, repeats: false)

优秀的个人博客,低调大师

iOS - Swift NSProcessInfo 系统进程信息

前言 public class NSProcessInfo : NSObject 1、获取系统进程信息 // 创建系统进程信息对象 let processInfo:NSProcessInfo = NSProcessInfo.processInfo() // 返回当前进程的参数 /* 以 NSString 对象数组的形式返回当前进程的参数 */ let processArguments:NSArray = processInfo.arguments // 返回当前的环境变量 let processEnvironment:NSDictionary = processInfo.environment // 返回进程标识符 let processId:Int32 = processInfo.processIdentifier // 返回进程数量 let processCount:Int = processInfo.processorCount // 返回活动的进程数量 let activeProcessCount:Int = processInfo.activeProcessorCount // 返回正在执行的进程名称 let processName:String = processInfo.processName // 生成单值临时文件名 /* 每次调用这个方法时,都返回不同的单值字符串,可以用这个字符串生成单值临时文件名 */ let uniqueString:String = processInfo.globallyUniqueString // 返回主机系统的名称 let hostName:String = processInfo.hostName // 返回操作系统的版本号 let osVerson:NSOperatingSystemVersion = processInfo.operatingSystemVersion let majorVersion:Int = osVerson.majorVersion let minorVersion:Int = osVerson.minorVersion let patchVersion:Int = osVerson.patchVersion // 返回操作系统名称 let osName:String = processInfo.operatingSystemVersionString // 设置当前进程名称 /* 应当谨慎的使用这个方法因为关于进程名称存在一些假设 */ processInfo.processName = "test" // 判断系统版本是否高于某个版本 let opsVession:NSOperatingSystemVersion = NSOperatingSystemVersion(majorVersion: 10, minorVersion: 10, patchVersion: 4) let bl:Bool = processInfo.isOperatingSystemAtLeastVersion(opsVession) // 返回系统运行时间 let timeInterval:NSTimeInterval = processInfo.systemUptime

优秀的个人博客,低调大师

iOS - Swift SingleClass 单例类

前言 单例对象能够被整个程序所操作。对于一个单例类,无论初始化单例对象多少次,也只能有一个单例对象存在,并且该对象是全局的,能够被整个系统访问到。 单例类的创建 1.1 单例类的创建 1 单例类的创建 class SingleClass1 { var text:String = "default" class var sharedInstance: SingleClass1 { struct Static { static var onceToken: dispatch_once_t = 0 static var instance: SingleClass1? = nil } dispatch_once(&Static.onceToken) { Static.instance = SingleClass1() } return Static.instance! } } 单例类对象的调用 var single1:SingleClass1 = SingleClass1.sharedInstance single1.text = "QQ" var str = SingleClass1.sharedInstance.text println(str) 1.2 单例类的创建 2 单例类的创建 class SingleClass2 { var text:String = "default" class var sharedInstance: SingleClass2 { struct Static { static let instance = SingleClass2() } return Static.instance } } 单例类对象的调用 var single2:SingleClass2 = SingleClass2.sharedInstance single2.text = "QQ" var str = SingleClass2.sharedInstance.text println(str) 1.3 单例类的创建 3 单例类的创建 private let sharedKraken = SingleClass3() class SingleClass3 { var text:String = "default" class var sharedInstance: SingleClass3 { return sharedKraken } } 单例类对象的调用 var single3:SingleClass3 = SingleClass3.sharedInstance single3.text = "QQ" var str = SingleClass3.sharedInstance.text println(str) 1.4 单例类的创建 4 单例类的创建 class SingleClass4 { var text:String = "default" // This prevents others from using the default '()' initializer for this class. static let sharedInstance = SingleClass4() private init() {} } 单例类对象的调用 var single4:SingleClass4 = SingleClass4.sharedInstance single4.text = "QQ" var str = SingleClass4.sharedInstance.text println(str)

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册