资讯专栏INFORMATION COLUMN

总结iOS 8和Xcode 6的各种坑

ymyang / 1944人阅读

摘要:我们可以直接在这个基础上修改代码,因为它已经包含了一个工作副本。

项目路径坑

模拟器的路径从之前的~/Library/Application Support/iPhone Simulator移动到了~/Library/Developer/CoreSimulator/Devices/这相当的坑爹,之前运行用哪个模拟器直接选择这个模拟器文件夹进去就能找到项目
现在可好,Devices目录下没有标明模拟器的版本,图片上选中的对应的可能是iPhone 5s 7.1的
然后图片上的文件夹对应的应该是iPhone 4s 7.1 iPhone 4s 8.0 iPhone 5s 7.1 iPhone 5s 8.0.......,但是我不知道哪个对应哪个啊,好吧我要疯了


NSUserDefaults坑

通过NSUserDefaults储存在本地的数据,在模拟器删除APP、clean之后无法清空数据,我尝试删除iPhone 4s、iPhone 5s......里面的同一个项目,还是无解,这应该是个BUG,等苹果更新Xcode吧(我目前用的6.0)。但是真机没有这种情况(必须的啊)


UITableView坑

带有UITableView的界面如果到遇到以下警告

  

Warning once only: Detected a case where constraints ambiguously suggest a height of zero for a tableview cell"s content view. We"re considering the collapse unintentional and using standard height instead.

添加以下代码可解决

self.tableView.rowHeight = 44.0f;

autolayout坑

典型的UITabBarController作为根视图,然后点击其中一个页面button的时候push到一个列表页情况,结构如下图
如果在列表页需要隐藏tabbar,那么我一般都会在这个VC把bottombar设置为none以便能更好的进行约束布局,但是......在调试的时候你会发现进入列表页的瞬间底部会出现一个tabbar高度的视图。还是老老实实在就用默认的Inferred吧。


键盘弹不出

取消选择Connect Hardware Keyboard


detailTextLabel无法显示

先来下面这段代码

- (void)viewDidLoad
{
    [super viewDidLoad];
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        self.array = @[@"测试"];
        [self.tableView reloadData];
    });
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return 1;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TradeRecordCell"
                                                            forIndexPath:indexPath];
    cell.detailTextLabel.text = _array[indexPath.row];
    return cell;
}

代码没什么问题,在iOS 7下,一秒之后cell的detailTextLabel就会显示测试两个字,但是在iOS 8却不行detailTextLabel显示为空。测试发现,当detailTextLabel的text一开始为空,iOS 8下运行就会把这个label的size设置(0, 0)从而不能正确显示,原因是这里cell.detailTextLabel.text = _array[indexPath.row];一开始数据就是空的,解决办法:

如果是空就不去设置值

    if (_array[indexPath.row]) {
        cell.detailTextLabel.text = _array[indexPath.row];
    }

或者

cell.detailTextLabel.text = _array[indexPath.row] ? : @" ";

pch文件不见了

现在Xcode 6创建的项目默认是不带pch文件的,当然了旧版本的项目是会保留的。那么如何添加pch文件?
* Command + N 然后在Other里面选择PCH File
* 在Build Settings里面找到Prefix Header
* 添加pch文件,规则是: 项目名/xxxxx.pch


UIAlertView的坑

UIAlertView显示无标题的长文本问题

UIAlertView *alterView = [[UIAlertView alloc] initWithTitle:nil message:@"远端Git仓库和标准的Git仓库有如下差别:一个标准的Git仓库包括了源代码和历史信息记录。我们可以直接在这个基础上修改代码,因为它已经包含了一个工作副本。" delegate:self cancelButtonTitle:@"知道了" otherButtonTitles:nil, nil];
[alterView show];

上面这段代码在iOS 8下显示的样子是这样的,内容完全顶到的顶部,文字还莫名其妙的加粗了
难道我会告诉你只要把title设置为@""就行了吗

 UIAlertView *alterView = [[UIAlertView alloc] initWithTitle:@"" message:@"远端Git仓库和标准的Git仓库有如下差别:一个标准的Git仓库包括了源代码和历史信息记录。我们可以直接在这个基础上修改代码,因为它已经包含了一个工作副本。" delegate:self cancelButtonTitle:@"知道了" otherButtonTitles:nil, nil];
[alterView show];

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/15547.html

相关文章

  • ios好文

    摘要:在上面的中,苹果还对具体的细节做出了要求。不过,就在今天,苹果宣布将这个无限期推迟。不网络请求之与的二次封装及意义之后,被苹果抛弃,该来的即便是迟些,但最终肯定会来。适配,极光推送用户要做这处更改升级至建议尽快升级。 iOS10 通知 extension 之 Service Extension 你玩过了吗? iOS10 通知 extension 之 Service Extension ...

    Caizhenhao 评论0 收藏0
  • iOS开发学习路线

    摘要:开发学习路线前言这里筑梦师是一名正在努力学习的开发工程师目前致力于全栈方向的学习希望可以和大家一起交流技术共同进步用简书记录下自己的学习历程个人学习方法分享本文阅读建议一定要辩证的看待本文本文主要是本人对开发经验中总结的知识点本文所有观点仅 iOS开发学习路线 前言 这里筑梦师,是一名正在努力学习的iOS开发工程师,目前致力于全栈方向的学习,希望可以和大家一起交流技术,共同进步,用简书...

    ctriptech 评论0 收藏0
  • iOSXcode 中重命名项目名称填指南——Jinkey 原创

    摘要:但是我没遇到这个提示框,各位自行使用关闭工程这里,为我们做的其实就是把它自己的工程文件重命名了,并且修改了里面的配置信息。文件夹重命名直接点击名字重命名修改前修改后重连文件路径打开工程,妈蛋,发现好多标红的。并且修改文件大功告成 本文作者 Jinkey(微信公众号 jinkey-love,官网 https://jinkey.ai)原文链接 https://jinkey.ai/post/...

    fobnn 评论0 收藏0
  • fir.im Weekly - 如何写出零 bug 代码

    摘要:神兽护体,代码无。那么,如何能写出零的代码呢,来看看码农翻身的这篇手册零的代码是怎么炼成的。写零一定少不了代码审查,推荐下的随笔思考程序员的寄望与哀伤,是否也说出了你的心声。除此之外,叶孤城和其他几个伙伴做了的高效专业代码审核服务。 神兽护体,代码无bug。经常看到代码注释的各种形状,这是一种程序员情怀。那么,如何能写出零 Bug 的代码呢,来看看@码农翻身 的这篇手册——零Bug的代...

    lanffy 评论0 收藏0
  • fir.im Weekly - 如何写出零 bug 代码

    摘要:神兽护体,代码无。那么,如何能写出零的代码呢,来看看码农翻身的这篇手册零的代码是怎么炼成的。写零一定少不了代码审查,推荐下的随笔思考程序员的寄望与哀伤,是否也说出了你的心声。除此之外,叶孤城和其他几个伙伴做了的高效专业代码审核服务。 神兽护体,代码无bug。经常看到代码注释的各种形状,这是一种程序员情怀。那么,如何能写出零 Bug 的代码呢,来看看@码农翻身 的这篇手册——零Bug的代...

    incredible 评论0 收藏0

发表评论

0条评论

ymyang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<