2010-12-08 78 views
0

有沒有方法可以訪問/存儲多個數組或數據,這些數組或數據可以進行比較並返回值以確保程序更快?多個陣列

我將有兩個變量具有多種可能性我想將這兩個變量與所有可能性進行比較並返回一個值,但這會減慢應用程序的速度是否有辦法更快地執行此操作?

+0

你想要什麼? – vikingosegundo 2010-12-08 11:13:07

回答

1

聽起來像你想檢查內的對象的存在。集具有非常快速的查找時間,但不保留對象的順序。它們對於檢查值是否在特定的一組值中特別有用。例如,以下代碼片段從用戶獲取一串文本,並確保它是@"Abc",@"Def"@"Ghi"。這個微不足道的案例只涉及三個要素,但當然你可以輕鬆添加更多。

NSSet *possibleValues = [NSSet setWithObjects:@"Abc", @"Def", @"Ghi", nil]; 

NSString *userProvidedInput = /* obtain from user somehow */; 

if ([possibleValues containsObject:userProvidedInput]) 
{ 
    NSLog(@"The user provided correct input!"); 
} 

NSSet對象可以包含任何NSObject子類,包括NSStringNSNumber等,如果你有很多元素的集合,可以考慮將它們存儲在一個plist文件(使用數組),並使用類似:

[NSSet setWithArray:[NSArray arrayWithContentsOfFile:@"some.plist"]];