2012-12-20 84 views
1

簡單的問題:我學習了C++和struct的語法。所以我想在我的iOS應用程序中使用結構來存儲數據,但ARC不允許通常使用結構是否有解決我的問題的方法?在iOS6中用ARC定義結構

struct fruit { 
    int a; 
}; 

_

{ 
struct fruit apple; 
apple.a = 1; 
return 0; 
} 

例如是否可以用NSMutableArray解決這個問題? btw在哪裏我必須定義? .m文件或​​.h文件?

問候CTS

回答

4

當然,即使使用ARC,也可以在Objective-C中使用結構。應該有絕對與結構沒有問題,你指定:

struct fruit { 
    int a; 
}; 

與ARC發生的唯一的問題是包含Objective-C對象結構,因爲ARC不知道它如何來管理這些對象。但是,您可以使用__unsafe_unretained,讓編譯器知道「你知道,你在做什麼」:

struct foo { 
    __unsafe_unretained NSString *bar; 
}; 

bar就是在這種情況下,一個指針,而不是一個很強的參考,通過ARC管理。如果可能,Apple建議在這些情況下使用簡單的類。