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之旅 相互交流,共同學習,共同進步!

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM