- 博客(15)
- 资源 (8)
- 收藏
- 关注
原创 Swift如何判断字符串的语言
有时我们需要判断一段文字是属于那种语言:英文?韩文?还是中文?虽说这也算某种程度的猜测,但至少比你自己瞎猜要准确地多! ;)这里提供三种方法.首先如果你只在MacOS上运行的话,你可以用AppKit中的NSSpellChecker类:import AppKitlet checker = NSSpellChecker.shared()checker.automaticallyIdentifiesLa
2016-11-29 20:22:59 2346
原创 Swift中enum自定义类型的实现
在Swift中枚举类型非常强大,内置的实现可以大大减少我们手敲的代码量.下面碰巧就有这么一个需求:Person类里面有一个type属性,其值包含2个内容,一个是name,类型为String,另一个是logo,类型也为字符串,不过表现为绘文字emoji.因为结构或类的静态属性都可以用点访问符来直接访问,所以我们可以轻易写出如下代码:class Person{ struct type{
2016-11-27 15:36:15 32331
原创 TableView的accessoryButtonTappedForRow方法执行的时机
敲代码时遇到了这个问题,别偷懒,写下来备查.当你在IB中对TableView中的accessory(注意,我说的是cell中的accessory,而不是cell)创建segue时,如果你在VC中同时实现以下3个方法,请问调用的次序是神马!?//1func tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith inde
2016-11-18 20:49:54 2279
原创 iKinds:我是如何一步步重构改造项目从单VC到多VC界面(下)
上一篇中我们快速验证了原型的功能可以实现,接下来就是稍微放慢前进的步伐,来收拾一下之前快速开发时写的稍显蹩脚难看的代码了.为了让大家还有印象,我把最后修改的方法完整显示如下:override func tableView(_ tableView:UITableView, didSelectRowAt indexPath:IndexPath) { tableView.deselectRow(a
2016-11-17 09:27:50 826
原创 iKinds:我是如何一步步重构改造项目从单VC到多VC界面(上)
iKinds是本猫近期准备慢慢把玩的一个项目,项目不是完全从0开始,而是借助于另一个不错的App框架,不过原来的框架使用的都是同一个ViewController模板,现在因为需要扩展为多个不同的VC模板.原来的框架使用了一些layer的3D动画效果,这对单VC模板工作的很好,现在要改为多VC模板,因为不确定工程量到底有多大所以我觉得有必要先写一些小段代码来测试一些可行性.这就是我们所谓的:原型
2016-11-17 09:08:28 1041
原创 Swift 3.0:String初始化器Encoding不能为nil的解决
以后会写一系列Swift 3.0中的小变化的博文,内容短小,因为我遇到这种问题就马上写下来,并不会刻意积累一大堆再一起写出来.如果大家有Swift 3.0使用上的问题欢迎提问.这个问题发生在之前可以执行的代码中:if let plays = try? String(contentsOfFile: path, usedEncoding: nil){ //do some stuff...}但是
2016-11-13 19:57:39 2075
原创 对GitHub的CoreData项目改造及完善
GitHub&CoreData(以下简称GC)项目是一个可以实时从GitHub的swift‘s Project里抓取更新的App。其中用到了第三方的son库SwiftyJSON,以及用来保存,枚举以及修改数据的NSFetchedResultsController对象。但是该项目在实际运行时用NSFetchedResultsController分组显示的内容确实乱的,相关初始化代码如下:let fet
2016-11-12 10:27:50 896
原创 Xcode8.x使用CoreData模型出现类被非法重定义的解决办法
这个问题在Xcode7.x中貌似没碰到过。不过在Xcode8.x中,在使用可视界面创建CoreData模型后再使用Editor->Create NSManagedObject Subclass之后有时会发现生成的数据对象类被重复定义的编译错误!这是因为在Xcode8.0中包含了一个自动生成NSManagedObject的机制,如果你打开该机制则会在project(Derived Data目录中)实际
2016-11-10 16:32:03 2778
原创 CoreData在Swift 3.0中的一点改变
在Swift 2.0中我们需要从core data中query结果的时候使用的是如下方式:func findAnimals() { let request = NSFetchRequest(entityName:”Animal") do { guard let searchResults = try context.executeFetchRequest(re
2016-11-09 19:39:37 1416
原创 Xcode8.1中@IBDesignable以及@IBInspectable不能自动刷新的解决办法
Xcode中的@IBDesignable和@IBInspectable关键字出来也有一段时间了,目的是当用户改变View属性时InterfaceBuilder的界面里可以得到即时刷新反馈.这无疑对于App界面的调整带来很多方便.不过网上很多童鞋都会抱怨使用时会出现或多或少的问题,不要着急,就让本猫带领大家来看看到底该怎么使用这两个关键字. ;)官方对这两个关键字(属性)是这么说的:"Live Ren
2016-11-06 13:31:30 2803
原创 SpriteKit:开启物理逐像素(Per-Pixel)碰撞检测后发现的问题及解决(续)
正传传送门:SpriteKit:开启物理逐像素(Per-Pixel)碰撞检测后发现的问题及解决之后还是发现一个小问题,就是虽然player可以正确处理碰撞scoreDetect出发点和其他障碍物,但是由于启用了Per-Pixel,还是会发生多次接触的情况,这时玩家的得分就会被多次累加!相关代码如下:if contact.bodyA.categoryBitMask == Mask.scoreDetec
2016-11-04 11:20:55 1138
原创 SpriteKit:开启物理逐像素(Per-Pixel)碰撞检测后发现的问题及解决
下面是一个开源的iOS小游戏,类似于 Flappy Bird,玩家需要不停点击屏幕让小飞机从峭壁中穿过,如果飞机撞上峭壁或地面游戏宣告结束,否则每穿过一次峭壁,玩家加一分.因为只是飞机和其他任何物理对象碰撞,而其他物理对象相互之间均不会发生碰撞.所以原作者将飞机的接触掩码(contact mask)设置为任何对象,将碰撞掩码设置为0,表示不和任何对象碰撞:player.physicsBody!.co
2016-11-04 11:01:16 1753
原创 SpriteKit:模拟器中播放效果音有延时的解决办法
以下代码在模拟器(Xcode 8.1 + iPhone7)中运行会在第一次播放效果音时有半秒到1秒(甚至更长!)的延时,随后再播放就没有延时了:let sound = SKAction.playSoundFileNamed("explosion.wav", waitForCompletion: false)run(sound)player.removeFromParent()我们这里播放声音使用
2016-11-03 16:46:02 2250
翻译 SpriteKit中Scene中物理世界属性speed
SpirteKit中Scene拥有一个speed属性.所有SpriteKit的节点可以有附加其上的actions,并且默认他们全部以实时运行—–也就是说,动作中的1秒等同于真实时钟里的1秒.这个speed属性是一个时间的倍乘器,让你可以调整附加在节点上的动作应该运行多快.默认是1.0(真实时钟),但是你可以设置为2.0使得动作速度为原来的两倍.即”在5秒中fade out”,将实际变为”在2.5秒中
2016-11-03 14:09:51 1138
原创 Swift如何快速随机化数组中的元素
随机化数组元素或称为”洗牌”,是比较常用的算法,常常应用到一些游戏中.在Swift中我们可以有很多种选择.这里我只说两种:一种是扩展Array的功能,另外一种是利用GameplayKit中的内置方法.首先上代码:extension Array{ mutating func shuffle(){ for i in 0..<(count-1){ let j
2016-11-01 09:37:50 2691
SwiftUI 超酷炫动画示例大合集
2024-01-08
MacOS 和 iOS 内核 xnu 可编译源代码
2024-01-08
SwiftUI 示例 iFonts 应用完整项目源代码
2024-01-08
SwiftUI 各种界面、自定义视图、动画以及设计哲学示例合集
2024-01-08
SwiftUI 英雄动画(HeroAnimations)演示代码
2024-01-08
iOS 15.4 真机调试支持包(可支持最新的iOS 15.4.1系统)
2022-04-03
SwiftUI编程实现不同TabView标签页中任意导航层级视图之间相互跳转的演示代码
2022-04-03
unlocker_new
2008-11-10
UnlockerEx
2008-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人