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之旅 相互交流,共同学习,共同进步!
欢迎访问本人微博 @卫志荣