美文网首页
ios-最近开发问题小结

ios-最近开发问题小结

作者: wszyxc | 来源:发表于2017-03-29 17:25 被阅读124次

ios实用开发技巧:http://mobile.51cto.com/iphone-479249.htm

1.控制器之间的灵活跳转:如果有A,B,C,D四个控制器,想要在A push B ,B 在 push 到 D,然后从D pop 到 C,在从C pop 到 A 的解决方案:

思想:先Apush到B,再B push 到D,此时navigationcontroller的viewControllers中有[A,B,D],若想从D pop 到C,首先得这个数组里面有C这个控制器,可以考虑改变这个数组,但该数组系统默认的是不可变数组,我们可以创建一个可变数组tempArr,然后重点来了,就是利用一个方法 [self.navigationController setViewControllers:tempArr animated:YES]; 重新设置导航控制器的控制器数组.至于可变数组的操作,这里就省略了.

2.解决不合法的网络请求地址,当URL中包含了ASCII 字符集,汉字时,使用时必须要进行转义:

NSString * urlString = [kWebsite stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

3.SVN 忽略文件:

svn默认是忽略.a文件的,那如何在mac上传.a文件呢?

这个方法是通过修改svn配置文件,在终端输入:

open ~/.subversion/config

在配置文件中查找[auto-props],在[auto-props]上面添加:

global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store

4.如何修改MJRefresh的下拉刷新控件的位置.

[header setIgnoredScrollViewContentInsetTop:-50];

5.加载webView时内存消耗过多

http://blog.csdn.net/kongu/article/details/46878623

6.带进度条的webview控件 :支持cocoaPods

demo下载地址:https://github.com/chausson/CHWebView

文档说明:https://github.com/chausson/CHWebView/tree/master/ChineseMd

7.cocoaPods常见问题解决:http://blog.csdn.net/wangyanchang21/article/details/51437934

8.tabBarController的第三方, 方便增加加号按钮:CYLTabBarController

9.正式版状态下对NSLOG信息的屏蔽功能

a.在PCH文件中增加如下代码

#ifdef DEBUG

#define NSLog(...) NSLog(__VA_ARGS__)

#define debugMethod() NSLog(@"%s", __func__)

#else

#define NSLog(...)

#define debugMethod()

#endif

b.在 "Target > Build Settings > Preprocessor Macros > Debug" 里有一个"DEBUG=1"。

c. 设置为Debug模式下,Product-->Scheme-->SchemeEdit Scheme

设置Build Configuration成Debug时,就可以打印nslog了。

设置Release,发布app版本的时候就不会打印了,提高了性能

10.AFN3.0 进行图片上传  http://blog.csdn.net/a645258072/article/details/51728806

11.https:获取cer证书

终端输入如下命令:

openssl s_client -connect www.baidu.com:443 /dev/null | openssl x509 -outform DER > https.cer

openssl s_client -connect kyfw.12306.cn:443 /dev/null | openssl x509 -outform DER > https.cer

12.自定义返回按钮会造成返回手势不能使用,解决方法

///处理自定义返回按钮后不能侧滑

@interface RootNavigationController : UINavigationController

@end

@implementation RootNavigationController

- (void)viewDidLoad {

[super viewDidLoad];

self.interactivePopGestureRecognizer.delegate = self;

}

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {

if (self.childViewControllers.count == 1) { return NO; } return YES;

}

13.在xib中,在button的菜单栏中取消 Hilighted Adjusts Image选项,能够 取消按钮被长按变灰的效果

14.自定义view,如果重写了 initWithFrame,而在这个方法里面调用的是传入的frame,那么外面初始化的时候必须给定frame,否则可能出现意料不到的状况.

15.重写导航控制器的 - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated  可以拦截push操作,然后就可以在push的时候做一些我们自己想做的事情

16.如何自定义导航控制器,实现可以定制每个页面的导航栏, 包括设置导航条的透明度、颜色、以及渐变色。并且支持全屏右滑返回手势

http://www.jianshu.com/p/88bc827f0692

17.iOS scrollView 如何约束实现 固定宽度 动态高度?  http://www.cocoachina.com/ios/20150923/13451.html

18.如何获取tableView中内容的高度,可以给tableView添加一个tableFooterView,然后获取tableFooterView 的y值即可

19. webview加载html的标签内容  http://www.cnblogs.com/jiww/p/5643041.html

20.在html文件中图片的位置,记住千万不要设置成绝对路径。直接src="xxxx.png"就OK了,图片格式无所谓。在html中,引用图片要写成src="image01.png"这样,类似src="1%E6%A0%B8%E6%AD%A6%E5%99%A8_files/image001.png"这样是不行的,而且你要把html文件放在项目里。但是直接给网络地址是可以的.

21.iOS报错[__NSCFNumber length]: unrecognized selector sent to instance出现这种报错很大的原因是因为类型给错了,或许你这个数据是从json上解析后得到的,但是需要看一下这个数据是NSString还是NSNumber类型,如果是NSNumber类型的话,你又直接使用NSString类型的变量去接收他,那么肯定会报这样的错误,所以一定要注意数据的类型

22.当需要使用popToRootViewController跳转到首页时,有时会发现跳到的tabBarController的selectedViewController并不是第一个控制器,而是其他的,这个时候可以在方法前先设置self.tabBarController.selectedIndex = 0;这样就可以跳转到首页了,但是会发现tabBar被隐藏了,此时有个很巧妙的办法就是追溯到上一步,就是从 主控制器(带tabBar页面的控制器),push的时候,push之前先设置shopCarVC.hidesBottomBarWhenPushed = YES;push的代码之后在设置shopCarVC.hidesBottomBarWhenPushed = NO;这样就可以解决tabBar消失的问题了.

23.错误:Assertion failure in -[MASViewConstraint install]        -----控件没有添加到视图就是用masonry了

24 :底部视图直接用frame设置的情况下,在手机开启热点后,底部视图会往下偏一点,解决办法是将底部视图改为约束设置

25. error: linker command failed with exit code 1

原因:新建的控制器的名字和原有的控制器重名

还有以下两种情况可能会导致这种错误的发生:

一:项目中重复导入了某些文件.,这个一般在导入三方库时可能会重复导入.

解决办法:只需要在文件目录中查找到重复导入的文件,删掉即可,或者将整个三方库删除掉,重新导入,或者用cocopods导入.

二:在项目的某些地方需要#import"XXXX.h"而#import"XXXX.m".

26.CUICatalog: Invalid asset name supplied: (null)

UIImage imageNamed..后面的图片资源已经被删除了

相关文章

  • ios-最近开发问题小结

    ios实用开发技巧:http://mobile.51cto.com/iphone-479249.htm 1.控制器...

  • iOS-极光推送开发小结

    一、我的开发 注:因为推送缺陷,被黑成狗了。所以做什么事情要尽心尽力做好。认真、负责... 二、远程推送相关 三、...

  • 最近开发问题

    快到国庆了,总结一下最近遇到的问题 问题一, 表格查看更多问题 遇到需要时只显示两行表格,其余点击才会显示 解决:...

  • iOS 开发测试正式环境快速部署

    ios-实现项目在开发、测试、正式环境快速部署使用iOS APP的Build Configuration区分开发和...

  • iOS-开发中的问题

    1, 'iostream' file not found 这个问题是没有引入c++的系统库,在Link Binar...

  • iOS-一键打包发布

    iOS-一键打包发布 前言 特别说明 目的 步骤 问题集锦or注意事项 end 前言: 在日常开发的过程中,有时候...

  • 开发中Git问题小结

    1 Git的.gitignore配置 一般来说每个Git项目中都需要一个“.gitignore”文件,这个文件的作...

  • Flutter 开发日常问题小结

    1.couldn't find “libflutter.so“ 场景:Flutter 工程中引入了一个三方库,只支...

  • 最近小结

    车外阴雨绵绵,接连几天没有太阳的日子,心情仿佛也受到了影响。零零碎碎的心情,回顾一下,写最近5件开心的事和5件目前...

  • 最近小结

    刚刚回家,最近到今天为止,签单十八个,算是奔着目标在跑,蓝宝还差八个合格,很多是通过产品去介绍和沟通的。明年底要实...

网友评论

      本文标题:ios-最近开发问题小结

      本文链接:https://www.haomeiwen.com/subject/apcyottx.html