Swift中的字符串,第二篇,基本操作。其他的几篇传送门:

首先,我们要记得使用字符串最常用的两个参数:下标(Index)和范围(Range),几乎所有API都要用到它们

let offset = str.startIndex.advancedBy(2)// offset: 3rd char
let range  = Range(start: str.startIndex.advancedBy(3), end: str.endIndex.advancedBy(-2))// range: 3..<6, "345"

强制类型转换

let n      = Int(str)!
String("the number is \(n)")
String(format:"%.2f,  %i", 9.1, 304)

内容反转

阅读全文 »

字符串算是平常用的比较多、花样也比较多的一个类型,昨天有空把相关的一些常用操作都写了一遍,总结出来。其实iOS里面的字符串更复杂,还有NSString系列等等,那些API太多将来需要用的时候再慢慢学。
这个系列目前写了三篇,这篇是第一部分,String的一些常用属性。其他的几篇传送门:

判断是否为空

str.isEmpty

获取字符数组
Swfit里面的String很有意思,它并不是由很多个Character组成的,

阅读全文 »

作为一个一直在玩Linux kernel的码农,从来不知道什么叫面向对象,也没有一点面向对象的概念,学Swift的时候还是感觉蛮不适应的,很多东西不一样。不像以前从Pascal转到C,只是书写的语法规则有点变化而已。C用久了,对指针、地址、内存的敏感性已经深入骨髓,突然看到这么个不怎么需要考虑内存的语言,有点儿混乱…… :-)
惭愧,一直懒懒散散,现在总算是把基础的语法部分学完了。不知道是不是因为C没有那么多面向对象的复杂用法的原因,我总想要慢慢把语法弄扎实,没有急着去做UI(其实心里还挺急的,哈哈),不知是走对了路还是舍近求远了
Swift自己也是个不断变化的语言,玩了一阵子,更新到2.0以后好多东西又不一样了,我也是挺晕的
这里把过程中的笔记写一写,主要是基于一个C程序员的角度,有些容易出错的地方以及和C的异同
练习源码见:GitHub 

首先很重要的一点:空格不能少!!养成习惯!

变量类型&数值计算

  • Float/Double/Int可强制用String()转换,通用类型转换可用”\(var)”,String转换Int可用Int()
  • 变量名大小写区分
    阅读全文 »

读完的书

  1. 金粉世家
    大部头,看了好久才看完,看得有点累。可能受电视剧影响太深,我一边看一边不停地脑补陈坤、董洁、天线。小说写得是不错,那种世家的感觉,各种支线带来的社会整体描绘,感情线的冲突……虽然不至于欲罢不能但每次放下也有点恋恋不舍。我蛮喜欢小说里面的金燕西的,反倒对冷清秋有点反感,感觉多少有点想攀龙附凤又扔不掉自己的清高吧,特别是早期,很多经济上的便宜占得没骨气。
  2. The Swift Programming Language
    开发文档,算是看完了吧,不过还有很多东西待查
  3. AppStore经营之道
    台湾人写的东西,怎么看都是嗲嗲的,哪怕是在讲纯技术的东西。而且台版的书籍通常都是内容不多,图多、啰嗦,所以这本书虽然开了个很大的标题,其实里面的干货一般般,很快就读完了。对利用Appstore来挣钱(开发APP,不是刷榜)
    阅读全文 »

这些小Tips为本人近期读书笔记,收集来自网络开发者发布的技术文档,并非原创,共享的目的是为了扩散分享技术,共同进步。如有侵权不得转载等情况,请联系我告知,谢谢!

  • UICollectionView如果在数据不够一屏时上下滚动 当数据不多,collectionView.contentSize小于collectionView.frame.size的时候,UICollectionView是不会滚动的,可以增加下面代码就可以: self.myCollectionView.alwaysBounceVertical = YES;
  • drawRect & layoutSubviews两个方法都是异步执行,layoutSubviews方便数据计算,drawRect方便视图重绘。
  • drawRect方法使用注意点:
    1. 若使用UIView绘图,只能在drawRect:方法中获取相应的contextRef并绘图。如果在其他方法中获取将获取到一个invalidate 的ref并且不能用于画图。drawRect:方法不能手动显示调用,必须通过调用setNeedsDisplay 或 者 setNeedsDisplayInRect,让系统自动调该方法。
      阅读全文 »

这些小Tips为本人近期读书笔记,收集来自网络开发者发布的技术文档,并非原创,共享的目的是为了扩散分享技术,共同进步。如有侵权不得转载等情况,请联系我告知,谢谢!

  • 当view被添加其他view中之前时,会调用viewWillAppear,而之后会调用viewDidAppear;当view从其他view中移出之前时,会调用viewWillDisAppear,而之后会调用viewDidDisappear;当view不在使用,而且是disappeared,受到内存警告时,那么viewController会将view释放并将其指向nil
  • UIImageView的用户交互是默认关闭的,加在它上面的控件自然也响应不了事件。只要把UIImageView的userInteractionEnabled改为YES就能解决问题了。
    阅读全文 »

把自己收集的iOS开发资源,包括官方教程、视频、社区、插件、第三方库、文章等等, 绝大多数是基于Swift和中文,共享一下,顺便当作备份。绝大多数是基于Swift,中文资源优先,欢迎收藏!
网上学习开发的资料多如牛毛,类似的整合项目也比比皆是,多数没有更新且过于纷杂,有的已经过时,质量参差不齐,所以自己重新收录备查。
收录原则:内容适合最新版本,尽量iOS8+/Xcode7+/Swift2.0+(教程所用语言版本规则较宽松,无关语法不影响阅读),尽量中文原创/翻译,少量OC(很多控件都是用OC)&英文原文。以总结性文章、教程和可重用项目为主,不收录小的tips,只收自己看过的觉得有用的、好的东西

目前本人还在学习过程中,开发类教程文章看得不多,第三方库也用得比较少,还在慢慢增补。源码基本上都在Github,资源收集自用,持续更新。如有失效资源或侵权请告知,谢谢!

另外看到一个练手的小项目合集,准备有空就自己跟着练练,开放源码以示鞭策,列表清单传送门

地址(可能需要翻墙)

GitHub https://github.com/conanwhf/ResourceDoc

最近升级Xcode以后,Alcatraz就不见了,从开发者的issue list里面找到了解决办法

  1. 关闭Xcode,卸载Alcatraz:
    rm -rf ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin
    
  2. 清理残留文件:
    find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
    sudo xcode-select --reset
    
  3. 打开Xcode,重新安装Alcatraz,再重启Xcode,在弹出框中选择”Load Bundles”

讨论原帖地址:https://github.com/supermarin/Alcatraz/issues/352#issuecomment-153556597