[英]Objective-C: class as parameter
是否可以知道A作為參數傳遞而創建類型為A類的對象? 通常:
Class A=[MyClass class];
....
A * object=[[A alloc]...]; //incorrect code here !
謝謝 !
您不能將變量用作變量的類型。 您需要使用id
。
Class A = [MyClass Class];
....
id object = [[A alloc]...];
A是一個變量,實際上,它是對對象的引用,就像所有其他對象一樣。 因此,您不能在編譯器需要類型的地方使用它。 您應該將object
聲明為id
或您知道A可能是的其他類型的超類。 例如,以下代碼可以正常工作。
-(void) testFooBar
{
Class foo = [NSMutableString class];
NSString* bar = [[foo alloc] initWithFormat: @"Message: %@", @"Hello, World"];
NSLog(@"bar is %@, class name %@", bar, [bar className]);
}
並產生以下
2014-04-17 16:29:49.962 BigNumber[62212:303] bar is Message: Hello, World, class name __NSCFString
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.