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之旅 相互交流,共同學習,共同進步!
歡迎訪問本人微博 @衛志榮

浙公網安備 33010602011771號