我SomeClass.h如何將枚舉傳遞給子類中的方法(來自ViewController)?
typedef enum thing {stuff, foo, bar, etc} thing;
@interface SomeClass : UIView {
NSNumber *aNumber;
thing aThing;
}
我SomethingViewController.m
-(void)doSomething:(NSNumber *)n
withThing:(id)t
{
SomeClass *class = [[SomeClass alloc] initWithFrame:aRect];
[class setAThing:(thing)t];
[class setANumber:n];
}
-(void)viewDidLoad
{
[self doSomething:[NSNumber numberWithInt:2] withThing:foo];
這似乎從一個關於withThing警告做工精細,除了:使從一個整數的指針不進行強制轉換。
我想我的問題是:我做對了嗎?有沒有另一種方式不會給我這個警告?
謝謝!看起來你和桑德羅的答案都有部分答案。我應該澄清一下,枚舉不在SomethingViewController.h中,而是在另一個類中。使用枚舉名稱不會編譯。 SomethingViewController.h表示它預計在「thing」之後有一個「)」。無論如何,更改爲int並刪除演員的伎倆。有沒有辦法給兩個答案信貸? – 2011-01-19 16:29:18
如果是這樣,那麼您可以創建另一個名爲Globals的類,並將枚舉存儲在那裏。然後,在需要調用或訪問枚舉的任何位置導入該類。 (另外,如果你喜歡不止一個答案,增加投票是完全可以的。) – 2011-01-19 16:33:36