ios
申龙斌
70后老程序员一枚,精通C#,从事油田信息化,爱读书,5年多区块链经验,折腾过Basic, C/C++, Python, ObjectiveC, R, Python, Rust, 最近迷上了树莓派&Pico。
展开
-
iOS开发学习笔记:使用xcode里的单元测试,放在STAssert…里面的语句无法使用自动完成功能...
在xcode里集成了一个单元测试框架OCUnit(在xcode自动生成的头文件里自动实现了SenTestCase的接口,不知道OC和Sen这2个字头有什么来历?),在新建一个工程时,可以自动生成单元测试框架,在如何在原有工程上加入单元测试框架就没有时间折腾了(好像有个帖子说可以的)。实际上只有一些基础类需要用单元测试保证质量,对于那些大量界面操作的还是用手工测试吧,所以又要把原来的程序拆成2部...原创 2011-09-27 09:47:00 · 98 阅读 · 0 评论 -
iOS开发:xcode4中使用静态库和工作区
在xcode4中,为了将一些比较独立的功能封装起来,或者多人同时开发时,需要将程序打包成静态库,但在xcode4中设置工作区、工程和静态库等遇到了一系列问题,不知道是不是xcode的高版本中已经解决了这些问题?我用的是xcode4.0(4A304a), SDK是4.3。从网上能够查到的写的比较全面的使用和建立静态库的文章是CarbonFive的这篇文章。但我按照这个文章逐个试验后,发现几个地方...原创 2011-09-29 11:12:00 · 89 阅读 · 0 评论 -
iOS开发笔记[13/50]:解决SenTestingKit/SenTestingKit.h: No such file or directory问题
在一个iOS项目中引入了单元测试,感觉项目间的依赖关系有些乱,就建了一个新的Project,再把原来的.h和.m加进去,编译时竟然出现“SenTestingKit/SenTestingKit.h: No such file or directory”错误,google后发现这个帖子是正解,但原文说的不太清楚,这里再仔细记录一下。问题的原因,与单元测试有关的源文件添加到了不正确的Targets中...原创 2011-10-27 09:09:00 · 50 阅读 · 0 评论 -
iOS开发笔记[16/50]:Views
看《Programming iOS 4》的第14章Views,记住这些要点:(1)UIView也是UIResponder的子类;(2)View有树状的层次结构;(3)view可以用XIB创建,也可以用代码来创建;(4)UIWindow也是UIView的子类;(5)view的坐标原点在左上角;(6)view显示不出来可能是忘了调用initWithFrame;(7)调用sizeToFi...原创 2011-11-16 09:35:00 · 90 阅读 · 0 评论 -
iOS开发笔记[17/50]:导航栏里的“Back“按钮显示不出来
近日写了个有二级导航栏的程序,第一层导航栏点进去时有“Back”按钮,但再进入第二层时就找不到Back按钮了,百思不得其解,就从网上找了一段代码硬把BACK的按钮加上。//定制导航栏左边按钮上的字符串UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonIte...原创 2011-11-20 14:46:00 · 98 阅读 · 0 评论 -
iOS开发笔记[18/50]:在Mac OS X Lion系统中访问~/Library目录都需要点技巧
Mac虚拟机升级为Lion系统了,在iPhone模拟机调试时经常想访问应用程序的Document目录看看里面发生的状况,但在Lion系统中却找不到~/Library/Application Support/iPhone Simulator文件夹了。原来需要在Finder中这个~/Library文件夹默认是隐藏的,需要用特殊的办法才能显示。第一种办法:在Finder中,按住Option键,再到...原创 2012-02-19 14:12:00 · 135 阅读 · 0 评论 -
iOS开发笔记:大小写敏感的iOS文件系统,而iOS模拟器对大小写不敏感
一个程序在模拟器上运行正常,但在真机上运行就是出错,排除了下列多种可能性: (1)用5.0的SDK开发,部署在4.3的真机系统上 (2)越狱的iPhone机器 (3)文件的汉字编码不正确 (4)ZIP文件包解压到iPhone机器里有问题 (5)苹果开发证书安装不正确 最后发现是该死的iOS文件系统竟然对大小写敏感!!!静下心来想想也是,MAC等系统都是从UNIX系统修改过来的,大小写...原创 2012-03-03 15:22:00 · 433 阅读 · 0 评论 -
iOS开发笔记[19/50]:集成iAd广告
在iPhone程序中集成广告,管他能不能赚钱,不放上一个iAd就心有不甘。参考了下面这篇文章:http://bees4honey.com/blog/tutorial/how-to-add-iad-banner-in-iphoneipad-app/还参考这个Integrating iAds into an iOS 4 iPad App (Xcode 4)教程。(1)加上iAd框架在项目设...原创 2012-05-29 16:43:00 · 119 阅读 · 0 评论 -
【iOS开发笔记20/50】Tap手势
使UIView能够支持点击的手势,需要用下面的代码:UITapGestureRecognizer *t = [[UITapGestureRecognizeralloc] initWithTarget:self action:@selector(singleTap:)];t.delegate = self;UIImageView *subView = (UIImageView*)[self...原创 2012-05-30 16:12:00 · 88 阅读 · 0 评论 -
【iOS开发笔记21/50】获取应用程序的名称和版本号
应用程序的名称和版本号等信息都保存在mainBundle的一个字典中,用下面代码可以取出来。NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];NSString* versionNum =[infoDict objectForKey:@"CFBundleVersion"];NSString*appName =[infoD...原创 2012-06-05 08:29:00 · 88 阅读 · 0 评论 -
【iOS开发笔记22/50】:恼人的a valid provisioning profile for this executable was not found错误...
iPhone从4.3升级到5.1后,开发证书又出现莫名其妙的错误。历时5小时的不断折腾,从developer网站上revoke证书2次,重新生成provisioning,删除mac里的key chain,删除xcode中的证书,再从xcode的organizer中添加证书,修改xcode project中的签名参数,编译运行,最后Build是可以通过了,但仍然出现恼人的a valid prov...原创 2012-06-19 09:49:00 · 51 阅读 · 0 评论 -
【iOS开发笔记23/50】使用ARC时,如果不加strong,有时会给出警告
最近将代码转换成ARC内存管理方式,用Edit菜单中的Refactor可以完成自动转换,还是非常方便,但马上编译后会给出警告。assigning retained object to unsafe property, object will be released after assignment.错误出现在对window和navController上。@interfaceMyViewe...原创 2012-06-20 15:27:00 · 48 阅读 · 0 评论 -
【iOS开发笔记25/50】:正则表达式
iOS在4.0里也可以用正则表达式了,功能也是相当强大。曾以为自己已经掌握了正则表达式,这2天才明白正则表达式有多复杂,原来还有专门厚厚的一本书《正则表达式入门经典》。小程序的目标是匹配PGN棋谱中的着法部分。规则就是:数字表示第几回合,后面有个小句点,然后红方着法,可以跟评注,然后是黑方着法,可以跟评注。评注是放在花括号中的,可以单行,也可以多行。1. 炮八平五 炮8平5{ 红方首...原创 2012-07-01 11:05:00 · 102 阅读 · 0 评论 -
【iOS开发笔记26/50】我自己写的苹果应用程序XQViewer终于上架了,解决了一系列的问题,终于挺过来了...
我自己写的苹果应用程序终于上架了,朋友们多多支持啊!(2012年12月,由于苹果开发账号已经过期了,产品下架了)http://itunes.apple.com/cn/app/xqviewer/id533672399?mt=8&ls=1XQViewer在 iTunes 中查看 用iPhone或iPad扫描该二维码可直接安装XQViewer应用。一款中国象棋棋...原创 2012-07-15 11:01:00 · 126 阅读 · 0 评论 -
【iOS开发笔记27/50】访问mainBundle资源文件中的自定义的文件夹
平常访问iPhone应用程序中的资源文件时,只知道使用[NSBundle mainBundle],最近想在资源主目录里建立一个自己的目录,然后再放入自己的文件夹和文件,需要用这种办法:在xcode中Add Files时,要选中Creat folder references for any added folders这一项,这时加入到xcode工程中的文件会自己打包到发布安装包中。这个bund...原创 2012-09-21 15:10:00 · 94 阅读 · 0 评论 -
iPhone开发笔记[14/50]:没有开发者证书,先用模拟器也要开发
在新建一个iOS Device项目后编译,出现Code Sign error: The identity 'iPhone Developer' doesn't match any valid certificate/private key pair in the default keychain错误,原来是Scheme选择的不对,xcode建立一个项目时,默认的scheme是“iOS Devic...原创 2011-10-27 09:27:00 · 99 阅读 · 0 评论 -
iPhone开发笔记[12/50]:内存泄漏是必然要经历的痛,NSMutableArray的正确使用...
iPhone程序开发中的内存泄漏问题是新手非常头痛的事情,可能是用C#这类自动垃圾释放的语言太习惯了,用xcode中的profile工具查了一下我写的小程序,内存泄漏了一大堆,经过一阵子排查,在NSMutableArray中添加对象后不正确维护对象的引用计数是一个主要原因。在NSMutableArray how to properly addObjects and release这个讨论主题中...原创 2011-09-16 10:30:00 · 91 阅读 · 0 评论 -
iPhone开发笔记[11/50]:中文字符集的问题
在读文件时,以前用kCFStringEncodingGBK_95字符集在控制台中运行正确的程序,在但iPhone模拟器中就读不出数据了,后来发现必须使用kCFStringEncodingGB_18030_2000这个字符集,另外那个kCFStringEncodingGB_2312_80试了也不行,难道是iPhone上支持的字符集就是这样有限?NSStringEncoding enc = CFS...原创 2011-09-09 10:30:00 · 83 阅读 · 0 评论 -
iPhone开发笔记[10/50]:调用initWithNibName方法时不能写上.xib
在用代码初始化一个ViewController时,使用initWithNibName方法时会犯一个习惯性的小错误:// 下面这行是错误写法!!!MyViewController *myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController.xib" bundle:nil];问题相当简单,就是...原创 2011-07-14 09:11:00 · 33 阅读 · 0 评论 -
iPhone开发笔记[9/50]:NSMutableArray中的自动释放对象让我郁闷了一整天
在做一个TableView程序时,要在表格里显示一个文件夹内所有文件的清单,程序在一开始显示时正常,但是一滚动窗口时就崩溃,查找这个错误整整花了我一天的时间,原来出在NSMutableArray初始化时用的方法不正确,都是因为Objective-C的基础知识没学好。在一个UITableViewController类中声明了一个NSMutableArray *localFiles这样一个数组,作...原创 2011-07-13 14:42:00 · 39 阅读 · 0 评论 -
iPhone开发笔记[8/50]:选项卡栏编程的关键步骤
1. 使用Window-Based Application模板新建一个工程,例如名称是ttt2. 添加UIViewController 从classes中添加新文件,选UIViewController模板(根据情况可以选中UITableViewController),要建立相应的.h和.xib文件,这样会建立出aaaViewController.m, aaaViewController.h, ...原创 2011-07-11 16:15:00 · 29 阅读 · 0 评论 -
iPhone开发学习笔记[7/50]-在xcode里配置成功subversion
按照这篇文章的说明成功地在xcode中配置好了subversion,只是本人的xcode版本是3.2.5,最后一步的配置界面有原文作者说的有点区别。 如果SVN连接不正确,在Group&Files里看到的硬盘图标会有个小叉叉。...原创 2011-06-28 16:44:00 · 86 阅读 · 0 评论 -
iPhone开发笔记[5/50]-忘了写@synthesize语句所产生的严重后果
估计这是新手常犯的错,出现了这样的错误,应该马上猜到是忘写了@synthesize语句我在一个.m文件中忘了写@synthesize语句来实现一个属性的读写方法,程序异常崩溃,查看Debugger Console窗口后发现这样一段文字:[FlowerDetailViewController setDetailURL:]: unrecognized selector sent to insta...原创 2011-06-22 17:01:00 · 36 阅读 · 0 评论 -
iPhone开发学习笔记[4/50]-表视图的使用
照着《iPhone开发入门经典》这本书学习第14章的表视图的使用,书上一个简单的例子竟然做不下去,原来是xcode版本的原因。书中让添加一个UITableViewController,xcode旧版本中是在New File对话框中,依次选择Cocoa Touch Classes、Objective-C Classes和UITableViewController,但新的xcode(我用的是3.2...原创 2011-06-21 10:36:00 · 92 阅读 · 0 评论 -
iPhone开发学习笔记[3/50]-使用工具栏创建简单的多视图应用程序
照着《iPhone开发入门经典》这本书学完了第12章“使用工具栏创建简单的多视图应用程序”,就是写一个程序在底端放一个工具栏,里面放3个按钮,可以实现3个视图的切换,记录下几个步骤中的要点和心得:1、创建项目(1)添加视图和视图控制器添加几个子视图的类时,在Add File对话框中,先要选中最右侧的UIViewController subclass(我习惯了选择Objective-C c...原创 2011-06-20 22:06:00 · 106 阅读 · 0 评论 -
iPhone开发笔记[2/50]:Interface Builder
正在按照《Beginning iPhone 3 Development》(中文书名为:iPhone 3开发基础教程,由人民邮电出版社翻译发行)一书进行iPhone开发的学习,此随笔用来随时记录一些与Interface Builder相关的内容。 Interface Builder用来设计iPhone的用户界面,由于我是用Mac虚拟机进行开发的,所以启动Interface Builder界...原创 2011-06-06 10:23:00 · 679 阅读 · 0 评论 -
iPhone开发笔记[1/50]:初学iPhone上用Quartz 2D画图
参考了An iOS 4 iPhone Graphics Drawing Tutorial using Quartz 2D这篇文章,用了30分钟在iPhone上画出了一条直线,核心代码全在drawRect这个方法中:- (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); ...原创 2011-05-27 08:57:00 · 88 阅读 · 0 评论 -
iPhone开发笔记[6/50]-applicationDidFinishLaunching是iOS3.0以前用的方法
学习到第13章“使用选项卡栏管理多视图界面”时,第227页上有一段代码- (void) applicationDidFinishLaunching:(UIApplication *)application { [window addSubview : tabBarController.view ];}查apple的iOS Developer Library发现这个方法已经过时了,在...原创 2011-06-23 09:42:00 · 118 阅读 · 0 评论