我有一段代碼,我試圖優化。該方法正在使用很多,所以任何小小的改進都會大大提高性能。優化Objective-C代碼
- (CGRect)calculateRectForItemAtIndex:(NSIndexPath*)path {
//Get the x position stored in an NSMutableArray
double x = [self.sectionXPlacementArray[path.section] doubleValue];
double y = 0;
double height = 0;
//If this is the first row it is a header so treat it different
if (path.row == 0) {
height = self.defaultHeaderHeight;
y = 0;
}
else {
height = self.defaultHeight;
//Calculate the Y placement
y = (path.row-1)*self.defaultHeight+self.defaultHeaderHeight;
}
//Build and return a CGRect
return CGRectMake(x, y, [self.headerSizes[self.headers[path.section]] doubleValue],height);
}
下面是一些更多的信息:
1)headerSizes
是NSMutableDictionary
,看起來像這樣:
{
Header1 = 135;
Header2 = 130;
Header3 = 130;
}
2)headers
是NSMutableArray
看起來像這樣:
(
Header1,
Header2,
Header3
)
應用程序中的這些值w生病不是Header_。它們將是動態NSStrings,如「城市」或「國家」。 headerSizes
將包含應爲每個標頭使用的寬度。
您確定此方法實際上會減慢您的應用程序嗎? – bdesham
沒有辦法,這是你的瓶頸 – Vik
在你的例子中,性能瓶頸並不明顯。但是,我很好奇 - 這看起來很像一張桌子。這就是說,如果性能是你關心的話,那就用UITableView吧。 Apple對這種類型的事物有各種經驗,比如排隊等等。 – Jeremy