2013-07-19 34 views
1

我正在爲iOS創建我的第一個Master-Detail應用程序。如何將這個對象存儲在我的i​​OS類中?

我想存儲以下

  1. 名稱
  2. 網頁URL

在我的UITableView,我打算只顯示名稱(排序),但是當名字被竊聽,另一視圖將加載一個按鈕,將用WebURL啓動Safari

我嘗試使用MSMutableArray,但發現它不可排序。 NSDictionary也是如此。

任何想法(或樣品或鏈接到樣品),將不勝感激

我試圖使用未在iOS的7.0 和規劃上不再支持iOS 6的

早期版本是一個方法+但我可以生活在沒有3,4,5的支持。

+0

可以肯定的排序依據NS(可變)陣列。但大概你想排序的實體對只是名稱或只是網址。爲此,我可能將兩者放在字典中,將字典放在數組中,並使用「sortedArrayUsing ...」方法之一進行排序。 –

回答

1

與一個NSDictionary每個項目一個NSMutableArray是完全沒有問題。你可以對它進行排序。

NSMutableArray *rows = @[].mutableCopy; 
[rows addObject:@{@"name": @"Bob", @"url": [NSURL URLWithString:@"http://bob.com"]}]; 
[rows addObject:@{@"name": @"Alice", @"url": [NSURL URLWithString:@"http://alice.net"]}]; 
NSLog(@"%@", rows); 

[rows sortUsingComparator:^NSComparisonResult(id obj1, id obj2) { 
    return [[obj1 valueForKey:@"name"] compare:[obj2 valueForKey:@"name"] options:NSNumericSearch]; 
}]; 
NSLog(@"%@", rows); 

輸出:

2013-07-20 00:33:31.682 MyApp[28496:303] (
     { 
     name = Bob; 
     url = "http://bob.com"; 
    }, 
     { 
     name = Alice; 
     url = "http://alice.net"; 
    } 
) 
2013-07-20 00:33:31.682 MyApp[28496:303] (
     { 
     name = Alice; 
     url = "http://alice.net"; 
    }, 
     { 
     name = Bob; 
     url = "http://bob.com"; 
    } 
) 
+0

如果我創建一個類並具有一個對象的數據屬性。我可以在UITableView中將該類用作行嗎?然後我可以保留我的自定義對象的NSArray –

+1

您可以使用任何您想要的數據作爲您的表視圖的數據。您有責任在cellForRow委託方法中構建每個單元格。什麼數據支持取決於你,自定義對象的數組是一個常見的選擇。 –

相關問題