我有一個NSArray充滿了不同類型的對象。可以說一個是NSDictionary,另一個是NSData。 我將如何從這個數組中隨機選擇一個對象,然後檢查它是什麼類型的對象。 所以,如果它是一個NSDictionary,我會做方法A. 或者如果它是NSData,我會做方法B.獲取從數組中隨機選擇的對象類型?
我會如何把這個代碼?
謝謝!
我有一個NSArray充滿了不同類型的對象。可以說一個是NSDictionary,另一個是NSData。 我將如何從這個數組中隨機選擇一個對象,然後檢查它是什麼類型的對象。 所以,如果它是一個NSDictionary,我會做方法A. 或者如果它是NSData,我會做方法B.獲取從數組中隨機選擇的對象類型?
我會如何把這個代碼?
謝謝!
翻譯成Objective-C的
id obj = [array methodThatReturnsARandomObject];
if ([obj isKindOfClass:[NSDictionary class]]) {
a();
} else if ([obj isKindOfClass:[NSData class]]) {
UIImage *image = [UIImage imageWithData:obj]
}
或者你也可以做
NSObject *obj = [array methodThatReturnsARandomObject];
if ([obj isKindOfClass:[NSDictionary class]]) {
a();
} else if ([obj isKindOfClass:[NSData class]]) {
UIImage *image = [UIImage imageWithData:(NSData *)obj]
}
其實並不重要。
您可以使用一個隨機數生成器,它會得到一個介於0和數組最後一個索引之間的數字。然後,一旦獲得該對象,就可以在從該數組返回的對象上使用isKindOfClass或isMemberOfClass方法。
一個問題。所以在方法B中,假設我將NSData轉換爲UIImage,我該怎麼做?我試圖使用變量obj,但它似乎會引發警告。 –
你試過[UIImage imageWithData:obj]? –
是的我得到不兼容的指針類型發送'NSObject'到'NSData'類型的參數 –