iOS
文章平均质量分 66
shannonchou
这个作者很懒,什么都没留下…
展开
-
【解决】Xcode 4.3.3 异常提示 Storyboards are unavailable on iOS 4.3 and prior
在 Xcode 4.3.3 中创建了一个名为 Test 的新项目,不使用storyboards。错误提示:Storyboards are unavailable on iOS 4.3 and prior。编译运行时提示:Thread 1:signal SIGABRT于是我非常纳闷,我不是都没使用 Storyboards 吗?而且工程中也没有 .storyboard 文件,为什么还要提示原创 2012-09-17 15:19:32 · 1063 阅读 · 0 评论 -
extern 的用法示例
extern可以用来作为全局变量的声明,如果 ClassA 中定义了一个全局变量a,要在 ClassB 中使用这个全局变量就需要在 ClassB 中声明一个变量a,并用extern修饰。示例代码如下。ClassA.h#import @interface ClassA : NSObject {}- (void)setA:(int)x;- (void)show;@end原创 2013-07-01 18:32:00 · 1264 阅读 · 0 评论 -
View Tag 要注意
前几天遇到一个奇怪的bug,视图A中有一个 PageControl 控件,每当通过 NavigationController 将B视图 push 进去后,再回到A视图时发现 PageControl 控件就消失了。经过调试发现其已经被释放了。后来在一篇博客(【博客A】)中找到了灵感。原因是我导航栏上的BarButton是自定义的,并设置了tag为1,当视图切换时通过viewWithTag找到它并原创 2013-08-19 11:13:07 · 765 阅读 · 0 评论 -
自定义NavigationBar的返回按钮和标题
在controller的- (void)viewDidLoad方法中通过如下方式自定义导航栏左侧的按钮 UIImage* backImage = [UIImage imageNamed:@"back1.png"]; UIImage* backImage2 = [UIImage imageNamed:@"back2.png"]; UIButton* backButton=原创 2013-08-26 19:47:45 · 2374 阅读 · 0 评论 -
appstore 上线遇到的问题总结
权限问题公司的iOS开发账号是企业账号,然后通过这个账号给一个新创建的开发者账号赋予管理权限。其中Developer center 和 itunes connect 的权限是分开的,每边都需要开通。另外Developer Center中的权限等级也不一致,目前开发和发布对应的Certificates、Provisioning Profiles都已经创建好了,但是今后还是需要一些修改和添加的权限原创 2013-09-02 16:49:02 · 1265 阅读 · 0 评论 -
ASI框架设置Content-Type无效的问题
我服务器的某些接口只接收Content-Type 为“application/x-protobuf”的访问,我是用ASIFormDataRequest向服务器发送数据,通过addRequestHeader:value:方法设置Content-Type,结果总是不成功,在服务器端发现收到的Content-Type为“application/octet-stream”,后来经过多番尝试,通过使用set原创 2013-09-09 20:22:38 · 2669 阅读 · 0 评论 -
逐帧动画做loading视图
我封装了一个可复用的loading视图组件,用于按照一定周期逐帧播放加载动画。代码如下:.h文件#import //加载状态typedef enum { FZImageSequenceLoadingStatusStop = 1, // 停止 FZImageSequenceLoadingStatusLoading, // 加载中原创 2013-09-17 11:02:41 · 2547 阅读 · 0 评论 -
protobuf-objc 2.2.0 在mac 10.9上编译不通过
升级mac 10.8到10.9后protobuf-objc编译不成功,报错信息如下:google/protobuf/message.cc:130:60: error: implicit instantiation of undefined template 'std::__1::basic_istream >' return ParseFromZeroCopyStream(&zero_co原创 2013-12-16 23:49:36 · 3350 阅读 · 1 评论 -
FZEasyFile——简单易用的iOS沙盒文件操作组件
FZEasyFileAn easy way to create or overwrite file in sandboxWhat is it?It’s tedious, boring and unreadable to use iOS’s sdk to manage file directly. FZEasyFile provides an easy way to cr原创 2014-05-05 17:15:56 · 930 阅读 · 0 评论 -
iOS UIWebView下拉刷新实现
网上关于给UITableView实现下拉刷新效果的帖子较多,但是给UIWebView实现的比较少。还好在code4app网站上找到一篇给UIScrollView和UITableView实现下拉刷新的demo【下载地址】。它其中用到的开源控件是EGORefreshTableHeaderView。虽然名字是EGORefreshTableHeaderView,但是它其实可以用于所有UIScrollVie原创 2013-06-03 11:33:47 · 11308 阅读 · 0 评论 -
viewDidLoad 和 viewWillAppear: 方法
每个 controller 里面一般都会实现 viewDidLoad 和 viewWillAppear: 两个方法。对于iOS开发人员来说,这两个方法都很熟悉。至少都知道前者是在初始化时被调用一次,后者是在每次这个视图要被显示之前被调用一次。因此 controller 中主要的初始化代码都放在前者中,而后者主要用于视图在显示前的更新。但现实情况并不是这么理想,因为我们在 viewDidLoad 方原创 2013-07-01 11:52:40 · 6709 阅读 · 0 评论 -
隐藏TabBar后,UIWebView加载过程中和加载失败时,底部出现黑边的问题解决
描述我的应用里同时使用了 TabBar 和 Navigation Bar,由于原本的 TabBar 不能满足我的外观效果要求,我用自定义的 view 实现了一个 TabBar 的外观,隐藏了原本的 TabBar,切换视图的功能还是调用原来 TabBar 的接口。不知道是不是因为自定义TabBar的原因,当通过导航控制器进入第二个视图,并在第二个视图中隐藏TabBar时会出现一些问题,我的第原创 2013-06-13 16:17:58 · 3964 阅读 · 0 评论 -
【解决】循环导入导致:Unknown type name "***"
最近遇到一个莫名其妙的问题,我在 ClassA.h 中声明一个 ClassB 类型的成员变量,在 ClassA.h 中明明 import 了 ClassB.h,而在编译过程中总是提示 ClassB 为未知类型。几经周转后找到了原因,我在 ClassA.h 中 import 了 ClassB.h , 同时也在 ClassB.h 中 import 了 ClassA.h , 如此造成了循环导入。【解原创 2012-10-08 19:26:16 · 19770 阅读 · 1 评论 -
iOS开发,启动页,全屏,延时
如果想程序刚启动时显示启动页(logo页),并且启动页全屏显示,程序加载完成后又显示状态栏,需要做如下三步:启动页其实只是一张图片而已,如果你的程序需要兼容 iPhone3 和 iPhone4,那么要制作对应分辨率的图片,iPhone3 为 480 * 320,iPhone4 为 960 * 640。分别命名为 Default.png 和 [email protected],然后都放在工程下(可原创 2012-10-10 12:54:57 · 6031 阅读 · 1 评论 -
【解决】iOS开发,更新界面时崩溃,Tried to obtain the web lock from a thread other than the main thread or ……
在开发一些涉及网络访问的 app 时,我们通常的逻辑是将耗时网络操作放在新起的线程中去做,让在主线程中执行的方法尽快返回,否则前台视图就会处于假死状态。等后台线程的网络访问结束时再去更新前台视图。不过这样的逻辑在iOS开发中遇到了问题。我的 app 需要用户登陆,当用户点击登陆按钮后我新起一个线程去服务器验证,验证成功后跳转到新的视图。如下:【点击登陆按钮】→【新起线程访问服务器】→【成功原创 2012-09-24 11:52:34 · 3289 阅读 · 0 评论 -
iOS 开发,用 NSInvocationOperation 和 OperationQueue 做多线程操作
OperationQueue 相当于一个管理线程的队列,NSInvocationOperation 可以将方法封装为一个线程。将一个 NSInvocationOperation 对象加入到 OperationQueue 对象中就会自动被后台执行。我的 app 需要用户登陆,访问服务器是一个耗时的操作,因此我想将它放在后台执行。我封装了一个 NetManager 类,有个实例变量为 Operat原创 2012-09-24 13:24:11 · 1113 阅读 · 0 评论 -
从KeychainItemWrapper到SSkeychain
iOS的SDK中提供的Security.framework框架可以用于保存一些机密数据,比如用户的账号和密码等信息,不过大部分开发者都不会去直接使用它,因为它比较麻烦,需要去了解的东西比较多。不过官方也提供了样例代码(【下载地址】),其中KeychainItemWrapper类是对下层代码的封装,我们可以直接使用它来安全地保存和获取信息。因为是官方提供,所以使用它的人也比较多,网上关于如何使用它的原创 2013-03-25 11:25:53 · 6661 阅读 · 1 评论 -
iOS中缓存图片
如果一个应用中需要从云端加载较多图片,甚至会频繁刷新页面,那么这个应用就有必要将图片缓存起来,不用每次刷新都重新下载图片。我这里写了一个简单的图片缓存工具,还比较实用。头文件 ImageCache.h#import @interface ImageCache : NSObject { //缓存的服务器端图片 NSMutableDictionary *cached原创 2013-05-20 17:59:27 · 1624 阅读 · 0 评论 -
iOS开发记录
一、 查看Sqlite内容如果项目中用到sqlite,经常在开发过程中会去查看数据的变化。找到Sqlite文件存储位置。~/Library/ApplicationSupport/Simulator/6.1/Applications其中6.1为自己设置的模拟器版本,如果模拟器为5.0的话就去5.0目录。但是该位置下可能有很多文件夹,而且是以十六进制字符命名的,这种情况下有个简原创 2013-05-02 11:55:48 · 1254 阅读 · 0 评论 -
iOS 开发,工程中混合使用 ARC 和非ARC
【前提知识】ARC:Automatic Reference Counting,自动引用计数ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。该机能在 iOS 5/ Mac OS原创 2012-10-08 20:13:21 · 11495 阅读 · 3 评论 -
iOS UIWebView 修改user-agent
WebView 没有提供设置user-agent 的接口,原创 2014-05-15 00:05:33 · 17785 阅读 · 3 评论