簡體   English   中英

需要幫助編寫簡單函數以將對象添加到數組(目標C)

[英]Need Help Writing a Simple Function to Add Objects to an Array (Objective C)

作為iOS開發(和編程)的新手,我正在努力完成我認為很簡單的事情 - 但我需要一些幫助來編寫代碼。

我有一個包含一些facebook對象的可變數組。 該數組稱為facebookPhotosAllTemporary。 我想迭代數組,在每個索引處拉出每個對象(一個UIImage),並將每個圖像插入一個名為facebookPhotosAll的新數組中。 這是我目前的代碼:

在實現中我有一個私有方法:

- (void) addImagestoArray {
int i;
for (i = 0; i < [facebookPhotosAllTemporary count]; i++) {
    UIImage *image = [UIImage imageWithData:
                           [NSData dataWithContentsOfURL:
                            [NSURL URLWithString:
                             [[facebookPhotosAllTemporary objectAtIndex:i]
                              objectForKey:@"pic_big"]]]];
    [facebookPhotosAll addObject:image];
           }
}

然后在viewDidLoad部分中我調用方法:

[self addImagestoArray];

當我運行它時,我的NSLog消息說我正在嘗試添加對象的數組中沒有對象。

我意識到我的代碼可能完全有缺陷! 但是有人會讓我走上正軌嗎? 謝謝!

這里有一些問題。

  1. 你分配並初始化facebookPhotosAll了嗎? 換句話說,在某些地方,例如在init方法或viewDidLoad中,你做了類似的事情:

    facebookPhotosAll = [[NSMutableArray alloc] init];

  2. 您正在應用程序的主線程上同步從Internet加載一組圖像。 這將掛起用戶界面。 最好的情況是,這將使您的應用程序看起來簡短。 最糟糕的情況是,如果這需要太長時間,操作系統將會因為無法響應而終止您的應用。

  3. 您為獲取圖像而編寫的行很討厭,難以閱讀,並且難以調試。 將其拆分為5行。 通過這種方式,您可以查看每個部件,以防出現問題。

要處理問題2,您應該參考Apple提供的LazyTableImages示例應用程序。 這顯示了在后台加載圖像的正確方法。 永遠不要在主線程上進行同步Internet訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM