Xcode 9.0在代码中任意键盘敲击不停build的解决

原来的项目在Xcode 8.3.3下行为正常,不过今天用Xcode 9.0打开后噩梦开始了,在代码中只要输入任何文字,哪怕是注释,Xcode都会立马编译项目,还顺带编译storyboard.这样一来结果就是:卡成狗了!尝试重启Xcode,Mac均无效,难道要退回Xcode 8.3.3去?经过一番搜索,原因却是出乎寻常的简单:在Storyboard里开启了自动刷新,并且你在某个视图中使用了IB_DES...
阅读(451) 评论(0)

iOS关于TableView重用Cell的一点领悟

最近写App遇到了一个奇怪的问题,UITableViewCell的显示状态老是不对,调试了好久,在解决中又对Cell重用机制有了进一步的小领悟,愿与大家分享;)什么是Cell重用?简单的说你在方法func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell中使用了如下Cel...
阅读(385) 评论(0)

iOS运行App总是提示Unknown class in Interface Builder file的解决

使用Xcode 8.3.3构建App后,运行正常,但是调试console老是显示如下错误:Unknown class xxx in Interface Builder file这里的xxx是类的名字,在我的项目中是一个继承于UITableViewCell的类.为了便于管理和加载,我在创建xxx类时同时创建了对应的xib文件,所以一共是创建了2个文件:xxx.swfit xxx.xibApp在运行时需...
阅读(343) 评论(0)

iOS:在界面显示gif动画图片

默认cocoa touch无此功能,不过我们可以站在github肩上轻松实现该功能。github地址:https://github.com/bahlo/SwiftGif首先是安装CocoaPods,Pods依赖RubyGem,由于国内网络条件导致会出现安装卡死的现象,如果出现类似的问题,大家可以参考我ruby安装源的相关文章。安装CocoaPods本质上很简单,就一行命令:gem install c...
阅读(368) 评论(0)

MacOS中Safari地址栏卡顿以及经常自动跳转到MacKeeper站点的解决

MacOS的版本是10.12.5,之前浏览器再输入新的地址时会发生短暂卡顿.再安装了所谓的XXX激活器后,又多了个随意在Safari中跳转到MacKeeper站点的毛病!不想用TimeMachine还原,所以找到了一个办法,测试有效,与大家分享 :)https://www.malwarebytes.com/mac/到以上地址下载恶意软件清除工具,然后运行,在首次运行时需要输入系统密码.然后点击扫描(...
阅读(651) 评论(0)

Swift减少print函数的耗费

尽管print声明不会在设备的console里打印,但它们甚至在Release版本和设备上也会执行,这些执行可能会带来一些耗费。特别的,它的参数仍然被模拟求值。如果你的print调用只有一个参数,这里有一个变通方法。你可以通过定义自己的全局级别的print方法来重写Swift的print方法,并且使用@autoclosure修饰器推迟其参数求值,就像assert做的那样:func print(_ i...
阅读(393) 评论(0)

Nibs真的有必要吗?

因为nibs本质上只是一系列资源的实例,你可能觉得是否有可能完全不用它们。这些相同的实例可以用代码创建,所以难道不可能完全省掉(nibs)吗?简单的说:可以!完全有可能写一个复杂的app省掉单独的.storyboard或者.xib文件。但实际的答案是:要注重平衡性!大多数app使用nib文件作为至少包含若干界面对象的资源;但是这里有些界面对象只能在代码中被定制,并且有时候从最初就用代码创建界面对象更...
阅读(440) 评论(0)

Swift协议合成(protocol composition)

我们知道类可以同时遵守多个协议,比如:protocol One{ func one(name:String) }protocol Two{ func two(age:Int) }class Root:One,Two{ }同样一个协议也可以遵守多个协议:protocol Comb:One,Two{ }class Root:Comb{ }不过如果我们在只是希望同时遵守多个协议而没有额外添...
阅读(588) 评论(0)

Swift计算属性和存储属性的重要区别

As the preceding example demonstrates, a computed instance property function can refer to other instance properties; it can also call instance methods. This is important, because in general the initial...
阅读(442) 评论(0)

Swift在同一条语句中传递方法结果到方法参数情况的处理

在相当稀罕的情况下,你想要将一个Cocoa方法的返回值立即传递给相同的方法里去使用.举个栗子,Cocoa有一个UIApplication实例方法:func beginBackgroundTask( expirationHandler handler: (() -> Void)? = nil) -> UIBackgroundTaskIdentifierbegin...
阅读(950) 评论(0)

Swift多defer的执行顺序及特殊情况

如果在一个代码域中包含多个defer块,它们将按相反顺序执行;你可以把它们想象成一个栈。乍一看defer以相反顺序执行感觉很奇怪,但不管怎样,如果我们看一个实际的例子,就会觉得有道理:guard let database = openDatabase(...) else { return } defer { closeDatabase(database) } guard let connection...
阅读(594) 评论(0)

Swift静态和动态分发机制

Free functions, and methods called on structs, are statically dispatched. This means the function that’ll be called is known at compile time. This also means the compiler might be able to inline the fu...
阅读(693) 评论(0)

Rails出现ROLLBACK TO SAVEPOINT active_record_1信息的解决

使用sqlite3和postgresql均在rails console中存储数据库出现上述信息,无法正常生成记录,且无出错信息。具体表现为生成的记录key为:nil:rails版本为5.0.3,ruby版本为2.2.6.因为用2种数据库都出现同样错误,所以基本排除数据库引擎的问题。检查model及migration的定义,未发现问题!同一台mac上另一个rails 4.x的项目是正常的!在安装了ge...
阅读(637) 评论(0)

完善一个iOS程序的界面功能:使用StackView以及其他UI元素

原先的App用于从Github上下载Swift提交信息,然后显示出来。App通过Github暴露出来的API接口返回json信息,然后将其通过CoreData保存到本地数据库中。在最后作者遗留了4个未完成的问题,如下:• Fun: Now that we have section names in our table, using a sort descriptor for date descend...
阅读(1232) 评论(0)

SpriteKit游戏如何一步一步重构在场景中增加金币动画(二)

上一篇我们迅速构建了一个生成金币的原型,现在我们需要进一步完善我们的功能。首先,我们需要让小飞机碰到金币不会爆炸,稍后我们让“金币”更像一个金币 ;)现在飞机的物理对象设置如下:player.physicsBody = SKPhysicsBody(texture: playerTexture, size: playerTexture.size()) player.physicsBody!.conta...
阅读(781) 评论(0)

SpriteKit游戏如何一步一步重构在场景中增加金币动画(一)

一个类似flappy bird的游戏,作者基本为我们实现了所有有趣的东东,不过为了更富趣味性,我们再加点料:在场景中自动生成一些金币。运行原来的游戏画面如下:下面我来带领大家一步一步把功能完善成型 ;)首先我们写一个小的coinsCreate方法,简单测试一下原型是否可行。在写这个方法之前请允许我先明确两件事:1.金币的位置需要和岩石(rock)位置相呼应,你没道理把金币放到岩石里面去,那个太反人类...
阅读(833) 评论(0)

Cocoa使用GameplayKit人工智能影响用户UI的解决

一个4 IN Row小游戏,改写自Apple官方App的源代码。游戏用iOS9引入的游戏框架GameplayKit实现AI。玩家和电脑轮流下子,当任意一方连成4个同色棋子则宣告胜利,否则当棋盘下满则为平局,重新开始游戏。源代码写的很棒!但是有一个小缺陷:当玩家触摸屏幕选择位置放置棋子后,用户界面会卡住直到AI选择下子后,两枚棋子才依次落位,如果你不懂我说的是神马,请看下图:这不符合玩家的直觉,应该是...
阅读(396) 评论(0)

写入iCloud在模拟器和真机上失败的解决办法

使用CloudKit将数据写入iCloud时无论是在真机还是模拟器上均出现错误,提示网络连接失败。开发环境为Xcode 8.3.2,iOS版本为10.3.当提示网络错误时可以确认网络是没有问题的。而且打开模拟器或真机上苹果的iCloud App是没问题的。此时查看错误的debug描述如下:写入asset失败,iCloud network failure这是我决定换用代理vpn试一下,结果竟然一切正常...
阅读(720) 评论(0)

SpriteKit可摧毁物理场景的进一步完善

例子举了一个早期DOS下的双人游戏,类似于百战天虫类型。不过有趣的是游戏中实现了可摧毁的物理场景,而且只用了很少的代码:游戏实现起来十分巧妙和简单,利用了CoreGraphic中的clear混合模式,将香蕉炸弹以中心位置的纹理全部消除,从而实现“摧毁”效果。游戏中为建筑物单独创建一个类,继承于SKSpriteNode,其中有一个currentImage用来存放当前楼体的纹理:class Buildi...
阅读(2164) 评论(4)

SpriteKit对于“子弹”物体的模拟

Second, SpriteKit uses a number of optimisations to help its physics simulation work at high speed. These optimisations don't work well with small, fast-moving objects, and our banana is just such a th...
阅读(918) 评论(0)
1077条 共54页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1621839次
    • 积分:25587
    • 等级:
    • 排名:第236名
    • 原创:789篇
    • 转载:98篇
    • 译文:190篇
    • 评论:565条
    关于侯佩 | hopy
    Asm , C , Javascript , Ruby , Objc , Swift
    iOS , MacOS , Linux , Windows
    Rails , SpriteKit , Cocos2D

    QQ : 1九7九61七4

    本猫用心写文章,如果帮助到你,请你任性打赏,以鼓励本猫猪写出更多更好的作品 :)


    博客打赏
    博客打赏
    博客专栏
    文章分类
    最新评论