在工作中遇到的问题汇总2

1. 关于push和pop的一些跳转方法

方法一:代理
方法二:通知

2. 关于使用Cornerstone合并后.xcodeproj文件打不开的情况

解决办法:1.在Finder中找到项目对应的.xcodeproj,右键点击选择显示包内容
        2.双击打开project.pbxproj文件
        3.找到类似如下的冲突信息(可用command + f  搜索)
        4.删除<<<<<<.mine
             ======
          >>>>>>>>>.r269
        5.保存文件,退出x-code 重新打开即可

3. UIAppearance的用法

我们可以通过UIAppearance设置一些UI的全局效果,这样就能很方便的实现UI的自定义效果又能最简单的实现统一界面风格

  //统一修改某个控件的UI风格
  +(id)appearance
  //修改多个控件的UI风格
  +(id)appearanceWhenContainedIn:(nullable Class <>)ContainerClass, ...

4. 获取当前的设备的系统版本号

  //获取当前设备的系统版本号
  [UIDevice currentDevice].systemVersion.floatValue

5. UITableView的contentInset的属性

  //官方解释,添加额外的滚动附近区域的内容
  UITableView *tableView = [UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
  //该属性在这里表示添加向上20个像素的额外滚动区域
  tableView.contentInset = UIEdgeInsetsMake(20,0,0,0);

6. 命令行的基本使用

看桌面下有什么文件 :ls desktop 回车

看桌面中的某一个文件夹下面有什么文件:ls desktop/文件名 回车

到指定的文件(如果该文件在桌面) cd desktop/文件名 回车

7. 类目的基本格式

在这里以AppDelegate类为例

  在项目中是以AppDelegate+(自定义的名字)存在
  在.h和.m文件中是以AppDelegate (自定义的名字)存在

8. Localizable.strings文件的创建

在项目中,我们可能会涉及到多语言app的开发,这时Localizable.strings文件便可以派上用场了

第一步,在Supporting Files文件下创建Localizable.strings文件

在工作中遇到的问题汇总2_第1张图片
在Resource下找到Strings File文件

第二步

在工作中遇到的问题汇总2_第2张图片
Save As后面的文件名一定要是Localizable.strings

第三步 将Localizable.strings的English勾选上

在工作中遇到的问题汇总2_第3张图片
点击Localize,选择English

第四步 在PROJECT中的info下找到Localizations属性,为其添加中文属性

在工作中遇到的问题汇总2_第4张图片
点击+号,点击Chinese(Simplified)(zh-Hans)

第五步

在工作中遇到的问题汇总2_第5张图片
勾选Localizable.strings,点击Finish

第六步 将对应的key和value写在对应的语言文件下

在工作中遇到的问题汇总2_第6张图片
不同语言的文件下的key要保持一致

第七步 在项目中使用

  //如果模拟器的语言设置为简体中文,tip输出为姓名,如果语言为English,tip输出为name
  /*
  注意:当NSLocalizedString没有找到key对应的value值时,会默认为key值
  */
  NSString *tip = NSLocalizedString(@"test", @"name");
  NSLog(@"%@",tip);

9. 列表刷新的问题

在项目中,我们经常会遇到这样的情况,后一个控制器进行某些操作后,会引起前一个列表状态的改变,在这里提供几种解决办法

  1.在下一个界面,请求数据成功,发送通知给上一个界面
  2.在下一个界面,执行某一个事件后,使用代理

10. xib的cell高度自适应问题

传送门http://www.cocoachina.com/ios/20140922/9717.html

11. pod install SDWebImage出现的问题

问题1:在命令行中输入pod install 或者是pod update 界面 卡在Updating local specs repositories
解决办法:将pod install 换成 pod install --verbose --no-repo-update
同理 将pod update 换成 pod update --verbose --no-repo-update

问题2:在pod安装成功后,运行项目,在SDWebImageDownloaderOperation中报Use of undeclared identifier '_executing'; Use of undeclared identifier '_finished
原因:NSOperation.h中声明了两个同名的属性
解决办法:使用@synthesize对属性进行重命名,在SDWebImageDownloaderOperation类的实现中(@implementation SDWebImageDownloaderOperation{...}下面)添加
@synthesize executing = _executing ;
@synthesize finished = _finished;

12. pch文件的创建问题
问题一:如何创建pch文件
解决办法:右键项目->new File...->在弹框的左边中选择other,在弹框的右边选择PCH File ->属于文件名后点击Greate

问题二:如何将创建好的pch文件与项目关联起来
解决办法:点击TARGETS->点击Build Settings->在其下方找到Prefix Header选项 ->双击,填写"项目名/pch文件名" 例:loveFlower/PrefixHeader.pch

问题三:pch文件中导入Counld not build module UIKit错误
解决办法:
#ifdef OBJC
#import
#endif

13. push后如何隐藏底部tabBar
解决办法:

  IMViewController *viewController = [IMViewController alloc] init];
  viewController.hidesBottomBarWhenPushed = YES;
  [self.navigationController pushViewController:viewController animated:YES];

14. xib如何给多个控件居中显示
问题:在开发过程中,我们经常会遇到,登录界面需要适配不同的屏幕尺寸,比如要登录名icon和登录名textField居中显示。
解决办法:

第一步:创建控制器时,勾选上Also create XIB file
第二步:创建成功之后的xib的宽和高都是600,此时在xib中把Use sizeClasses置成不打勾的状态,这样xib的宽和高会变成320和568
第三步:拖一个view充当背景view,然后所有的控件都加载在这个背景view上,此时我们只需对这个背景view添加一个垂直居中的约束即可
第四步:设置完之后,clear一下,然后重启demo即可

15. 在ARC环境下如何使用MRC环境中的变量
解决办法:在Build Phases中找到对应的类,双击输入-fno-objc-arc即可

16. 微信中点击cell后马上取消选中的实现
解决办法:在didSelectRowAtIndexPath方法中添加一段代码即可
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//选中后取消选中
[tableView deselectRowAtIndexPath:indexPath animated:NO];
}

17. 在数组中使用removeObject遇到的问题

问题:使用该方法remove不掉对象?
原因:数组中对象的地址和要remove的对象地址已经不同
解决办法:遍历数组,找到需要remove的对象,再调用removeObject方法
附加遇到的问题:当我们对同一个数组在同一时间进行多种操作时,比如在同一时间进行插入增加和遍历删除,这样就会抛错
解决办法:使用NSMutableArray重开一个线程

   NSMutableArray *copyArray = [NSMutableArray arrayWithArray:_selectArray];

18. tableView中取消cell的点击效果
解决办法:[tableView deselectRowAtIndexPath:indexPath animated:NO];

你可能感兴趣的:(在工作中遇到的问题汇总2)