在Swift3.0中 public表示当前类、属性或者方法只能在当前module内被继承或者override,在当前module意外只能被访问; open表示当前类、属性或者...
在Swift3.0中 public表示当前类、属性或者方法只能在当前module内被继承或者override,在当前module意外只能被访问; open表示当前类、属性或者...
msgSend 消息发送 动态方法解析 动态添加方法image.png 消息转发
Block的变量捕获(capture) Block的类型 如何区分Block的类型 MRC:Global:没有访问auto变量Stack: 有访问auto变量,系统自动管理内...
MG--Swift遮照HUD 2[https://www.imooc.com/article/314744] 比如网络请求IO读写操作这个操作往往比较耗时这个时候我们往往不需...
MG--Swift遮照HUD 1[https://www.imooc.com/article/314743] 在项目中经常会遇到比较耗时的操作 比如,网络请求,IO读写操作,...
MG--Swift面向协议开发[https://www.imooc.com/article/314262] 得益于面向对象语言的特性 (封装、继承、多态) 在我们熟悉的设计模...
@广锅锅 过分了哈,这叫吸引眼球
UICollectionView详解:(Header/Footer)与UITableView一样,UICollectionView的每个Section也可以自定义Header与Footer,本节讲解如何创建自定义的Header与Footer ...
@北京阳宸电子技术公司技术支持 😢😢😢😢
LLDB调试调试命令 http://blog.csdn.net/quanqinyang/article/details/51321338 1、expression -o - - self...
@NewMars 不客气😄
MG--错误总结(不定时更新)总结自己在开发过程中遇到的BUG ![第12个错误]](http://upload-images.jianshu.io/upload_images/1429890-b982f...
调试命令 http://blog.csdn.net/quanqinyang/article/details/51321338 1、expression -o - - self...
面试的几道题分享给大家 答案
extension Array {
// 防止数组越界
subscript(safeIndex index: Int) -> Element? {
set {
if index < self.count,let newValue = newValue {
self[index] = newValue
}
}
get {
if index < self.count {
return self[index]
}
else {
return nil
}
}
}
}
或者
extension Array {
func safe_object(at index: Int) -> Element? {
if index < count {
return self[index]
} else {
return nil
}
}
}
extension NSMutableArray {
func safe_addObject(_ object: Element?) {
if object != nil {
if let object = object {
self.add(object)
}
}
}
func safe_addObjects(fromArray array: [Element]?) {
if array != nil {
if let array = array {
self.addObjects(from: array)
}
}
}
}
swift中利用Subscripts下标脚本永久解决数组越界问题平常的代码中为了保证数组不越界,我们经常要在代码中加入判断,这样繁琐的工作可以在swift中利用下标脚本很优雅的解决,一劳永逸。 使用 很简单,我没有打算直接用 “arr[1...
你这样写会崩溃的 无法防止数组越界
swift中利用Subscripts下标脚本永久解决数组越界问题平常的代码中为了保证数组不越界,我们经常要在代码中加入判断,这样繁琐的工作可以在swift中利用下标脚本很优雅的解决,一劳永逸。 使用 很简单,我没有打算直接用 “arr[1...
guard let colorFilter = CIFilter(name: "CIFalseColor") else { return nil }
colorFilter.setDefaults()
colorFilter.setValue(qrCIImage, forKey: "inputImage")
let r = CGFloat(arc4random_uniform(256))/255.0
let g = CGFloat(arc4random_uniform(256))/255.0
let b = CGFloat(arc4random_uniform(256))/255.0
colorFilter.setValue(CIColor(red: r, green: g, blue: b), forKey: "inputColor0")
colorFilter.setValue(CIColor(red: b, green: g, blue: r), forKey: "inputColor1")
let codeImage = UIImage(ciImage: (colorFilter.outputImage!
.applying(CGAffineTransform(scaleX: 5, y: 5))))
codeImage.draw(in: rect)
通过CIFilter的CIQRCodeGenerator生成二维码二维码的生成在iOS开发中是非常常见的一个需求,我刚刚到公司的时候发现项目这部分是找的网上的C代码实现的。其实在iOS7中又提供了CIQRCodeGenerator的CIFi...