iOS 开发问题集锦(二)

时间:2022-04-12 18:06:17

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

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

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

iOS 开发问题集锦(二)

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

设置前

iOS 开发问题集锦(二)

设置后

iOS 开发问题集锦(二)

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

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

iOS 开发问题集锦(二)

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

设置前

iOS 开发问题集锦(二)

设置后

iOS 开发问题集锦(二)

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

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的警告呢?烦死人了...   如下图:

iOS 开发问题集锦(二)

修改UITextAlignmentCenter 为 NSTextAlignmentCenter

 

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

 


 

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

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

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