摘要:在Windows平台下, 对线程的同步控制,可以有Critical Section,Mutex,Semaphore,Event 等方式.在IOS平台,使用GCD进行简单的多线程编程时,可以使用dispatch_semaphore_t进行相应的同步操作.IOS平台上没有对应的Event这个控制对像. 对于一些适合Event模式的情况下,可以通过dispatch_semaphore_t模拟event(autoReset)的特性.set:-(void)set{ dispatch_semaphore_wait(_semaphore, DISPATCH_TIME_NOW); dispat...
阅读全文
摘要:对于个人开发者, 或者小团队, 可能没有能力做后台服务.而用户反馈和新版本检测, 则是现在应用的一个标配.友盟在这方面提供的服务很好很强大.1 新版本检测:在安装友盟的SDK后, 根据它的文档进行操作.有两点需要注意: 1.1 设置自动更新信息是在 我的应用->组件->自动更新 下进行操作. 1.2 更新日志只支持一种语言. 如果需要多语言显示更新日志, 只能通过其他渠道. 1.3 从代码中拿到的更新日志信息,是经过url encoder, 需要进行相应的decoder.2 用户反馈:友盟的用户反馈功能, 强大之处在于它可以双向. 即用户发送了反馈后, 开发者可以通过后台直接进行回
阅读全文
摘要:在家里写的代码, 有时候在公司也想打开改一改.以前, 我都是使用优盘进行拷贝, 或者直接在优盘上进行操作.有时, 忘了带优盘就傻眼了.也想过直接托管到代码托管网站. 但主流的一些托管,都是要开源的. 对于一些项目并不合适.最后, 使用了skyDriver来做为中间介质. 在机器上安装一个sky driver的mac版客户端, 就可以简单地当做普通目录进行使用.使用时有几点要注意:1:临时文件等不要放到此目录下, 以免有多东西需要与服务端进行同步. 在xcode4.6以上, 默认配置已经做到了这点2:网络要给力, 善后不要急. 我有几次在家里使用MBP编码, 写完调试通过后,把盖子一合. 第二天
阅读全文
摘要:家里老大的iphone5在WWDC后第一时间升级了IOS7.整体的UI风格和功能都很喜欢, 偶尔的crash还能接受.但是最常用的软件之一微信,在IOS7下无法分享图片这点一直让她耿耿于怀.从用户角度看,我认为是微信在选择图片时,hake了UIImagePickController, 而IOS7上对这个controller的view进行了更新,导致旧的hake方法失效了.昨天做了个微信分享的UIActivity,所以我信心满满地对老大说,我来帮你做一个简单的应用, 使用粗糙的UI, 选择一张图片, 通过微信API 跳转到微信,进行分享,几分钟的事情.但是结果却很让人失望. 使用第3方应用的方式
阅读全文
摘要:IOS6开始, 系统提供了UIActivityViewController, 对图片,文字,url进行相关的操作. 对于缺乏UI设计师的开发来说, 使用它进行轻量级的分享是很好的选择.最大的缺点是自定义的分享服务,图标都是灰色的.使用微信进行分享的例子:1 定义WeiXinActivity类.@interface WeiXinActivity:UIActivity{ UIImage* _imageForShare; NSString* _messageForShare;}@endconst NSString* WeiXinActivityType = @"WeiXinActivit.
阅读全文
摘要:有一个应用场景:从网上得到大量的文字信息,保存到本地。因为不停地获取文章,导致本地存储很快就变大。所以想到了简单地压缩。网上找了一段压缩的代码:+(NSData*)zipContent:(NSString*)strContent{ NSData* zippedData = nil; NSData* unzipData =[strContent dataUsingEncoding:NSUTF8StringEncoding]; int nSize =[unzipData length]; Bytef buffer[nSize]; Bytef zipbuffer[n...
阅读全文
摘要:使用Storyboard编写UI,设置支持AutoLayout.在其中的一个场景上,添加一个UIScrollView,在对应的代码里增加- (void)viewDidLoad{ [super viewDidLoad]; self.scrollView.contentSize = CGSizeMake(445, 60);}调试,发现内容能显示,但是无法滚动。经过网上搜索,发现是AutoLayout导致的问题。在支持AutoLayout后,系统会在ViewDidLoad之后,重新计算控件的一些值,导致上面设置的contentSize被重置为(0,0)了。解决方案很简单:把上面的设置代码...
阅读全文