iOS 開發問題集錦(二)

辦公機器原來是別人在用,Xcode也是用別人的帳號下載的。昨天想升級Xcode的時候,發現沒有密碼,爲了避免打擾別人,也爲了方便本身以後升級,因而乎把舊版本直接卸載掉,從新下載了全新的4.6版。ios

下載完成後,問題出現了,之前針對Xcode的一些設置都沒有了,因而只好從新設置。本身的記性不太好,在這裏記錄一下,以便從此出現一樣問題時查找。暫時遇到的問題有:app

一、代碼樣式發生了變化,默認爲Basic,根據我的喜愛,重設爲Default,以下圖所示:函數

設置前與設置後的對比圖:學習

設置前spa

設置後code

也能夠根據本身的喜愛設置成別的。xml

二、.xib文件上的視圖沒有自動顯示虛擬邊框,爲了方便對其,須要手動設置一下,設置方式Editor -> Canvas -> Show Bounds Rectangles,以下圖所示:對象

設置前與設置後的對比圖:blog

設置前遞歸

設置後

暫時就遇到這些問題,若是有新設置,再補上。如下部分是一些其餘問題。

3.一、UIBarButtonItem 和 NavigationItem 的區別是什麼?

UIBarButtonItem 包含在 NavigationItem裏邊, 就是導航條左右的那些按鈕。

NavigationItem 是一個容器,它能夠容納左右按鍵、返回鍵與標題視圖等。

3.二、[self.navigationBar addSubView:lable]; 和 self.navigationItem.titleView=label; 這兩個等價嗎?

這個不作回答,你們試一試就知道啦。遇到問題,多練習,多寫代碼,多試兩遍就出來了,記憶還深入呢。

四、如何在app的icon左上角顯示圓形背景的數字?

在AppDelegate.m中的applicationDidEnterBackground:方法中現實,以下

/*
 說明:當程序被推送到後臺的時候調用。因此要設置後臺繼續運行,則在這個函數裏面設置便可
 **/
- (void)applicationDidEnterBackground:(UIApplication *)application
{
     [[UIApplication sharedApplication] setApplicationIconBadgeNumber: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中沒有某個類的頭文件定義,而你確信這個類是能夠用的,那麼也能夠用這種方法。

六、iPhone來電的時候背後的閃光燈不停的閃

設置裏面選通用,而後選輔助功能,而後關閉LED閃爍就能夠了。

七、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));
}

七、如何取消UITextAlignmentCenter的警告呢?煩死人了...   以下圖:

修改UITextAlignmentCenter 爲 NSTextAlignmentCenter

 

著做權聲明:本文由 http://wzrong.cnblogs.com 或者 http://iostour.diandian.com 原創,歡迎轉載分享。 請尊重做者勞動,轉載時保留該聲明和做者博客連接,謝謝!

 


 

原創文章,如需轉載請註明出處,謝謝!

歡迎訪問本人技術微博 @iOS之旅 相互交流,共同窗習,共同進步!

歡迎訪問本人微博 @衛志榮

相關文章
相關標籤/搜索