zoukankan      html  css  js  c++  java
  • iOS 开发问题集锦(二)

    办公机器原来是别人在用,Xcode也是用别人的账号下载的。昨天想升级Xcode的时候,发现没有密码,为了不打扰别人,也为了方便自己之后升级,于是乎把旧版本直接卸载掉,重新下载了全新的4.6版。

    下载完成后,问题出现了,以前针对Xcode的一些设置都没有了,于是只好重新设置。自己的记性不太好,在这里记录一下,以便今后出现同样问题时查找。暂时遇到的问题有:

    1、代码样式发生了变化,默认为Basic,根据个人喜好,重设为Default,如下图所示:

    设置前与设置后的对比图:

    设置前

    设置后

    也可以根据自己的喜好设置成别的。

    2、.xib文件上的视图没有自动显示虚拟边框,为了方便对其,需要手动设置一下,设置方式Editor -> Canvas -> Show Bounds Rectangles,如下图所示:

    设置前与设置后的对比图:

    设置前

    设置后

    暂时就遇到这些问题,如果有新设置,再补上。以下部分是一些其他问题。

    3.1、UIBarButtonItem 和 NavigationItem 的区别是什么?

    UIBarButtonItem 包含在 NavigationItem里边, 就是导航条左右的那些按钮。

    NavigationItem 是一个容器,它可以容纳左右按键、返回键与标题视图等。

    3.2、[self.navigationBar addSubView:lable]; 和 self.navigationItem.titleView=label; 这两个等价吗?

    这个不做回答,大家试一试就知道啦。遇到问题,多练习,多写代码,多试两遍就出来了,记忆还深刻呢。

    4、如何在app的icon左上角显示圆形背景的数字?

    在AppDelegate.m中的applicationDidEnterBackground:方法中现实,如下

    /*
     说明:当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可
     **/
    - (void)applicationDidEnterBackground:(UIApplication *)application
    {
         [[UIApplication sharedApplication] setApplicationIconBadgeNumber:5];
    }

    5、NSClassFromString 类如何使用?

    NSClassFromString是一个很有用的东西,尤其在进行iPhone toolchain的开发上。

    正常来说,

    id myObj = [[NSClassFromString(@"MySpecialClass") alloc] init];

    id myObj = [[MySpecialClass alloc] init];

    是一样的。但是,如果你的程序中并不存在MySpecialClass这个类,下面的写法会出错,而上面的写法只是返回一个空对象而已。

    因此,在某些情况下,可以使用NSClassFromString来进行你不确定的类的初始化。

    比如在iPhone中,SKStoreProductViewController 可能就会出现这种情况,所以在你需要使用SKStoreProductViewController时,

    最好使用:[[NSClassFromString(@"SKStoreProductViewController") .....]]

    而不要直接使用 [SKStoreProductViewController ...]这种写法,因为 SKStoreProductViewController 在iOS6以下的版本并不支持。

    NSClassFromString的好处是:

    a 弱化连接,因此并不会把没有的Framework也link到程序中。

    b 不需要使用import,因为类是动态加载的,只要存在就可以加载。因此如果你的toolchain中没有某个类的头文件定义,而你确信这个类是可以用的,那么也可以用这种方法。

    6、iPhone来电的时候背后的闪光灯不停的闪

    设置里面选通用,然后选辅助功能,然后关闭LED闪烁就可以了。

    7、TBXML 如何遍历指定元素?

    /**
     TBXML 解析xml
     element : 遍历指定的元素
     */
    - (void) traverseElement:(TBXMLElement *)element {
        do {
            // 显示XML元素名称
            NSLog(@"%@",[TBXML elementName:element]);
                
            // 获取到当前节点的第一个属性
            TBXMLAttribute * attribute = element->firstAttribute;
                
            // 如果属性是有效的
            while (attribute) {
                // 在log窗口中显示属性的名称和值
                NSLog(@"%@->%@ = %@",[TBXML elementName:element],[TBXML attributeName:attribute], [TBXML attributeValue:attribute]);
                    
                // 获取下一个属性
                attribute = attribute->next;
            }
                
            // 递归遍历下一个子元素
            if (element->firstChild) [self traverseElement:element->firstChild];
            
        // 获取同级元素
        } while ((element = element->nextSibling));
    }

    7、如何取消UITextAlignmentCenter的警告呢?烦死人了...   如下图:

    修改UITextAlignmentCenter 为 NSTextAlignmentCenter

    著作权声明:本文由 http://wzrong.cnblogs.com 或者 http://iostour.diandian.com 原创,欢迎转载分享。 请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!


    原创文章,如需转载请注明出处,谢谢!

    欢迎访问本人技术微博 @iOS之旅 相互交流,共同学习,共同进步!

    欢迎访问本人微博 @卫志荣

  • 相关阅读:
    双飞翼布局和圣杯布局的对比
    阿里云centos+java环境搭建
    Android零散知识点积累
    [转]linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例
    [转]linux shell 获取当前正在执行脚本的绝对路径
    [转+整理]linux shell 将字符串分割成数组
    [转]linux shell 数组建立及使用技巧
    linux shell 入门
    jquery 字符串转为json
    JQuery插件开发入门
  • 原文地址:https://www.cnblogs.com/wzrong/p/3233608.html
Copyright © 2011-2022 走看看