爲我的OSX和iOS庫。Objective-C - 是否有可能在我的結構中有NSArray?
我試圖在我的struct
中保留array
。但不幸的是NSArray *array_url;
裏面的struct
不允許Xcode。
但是,當我刪除__unsafe_unretained NSArray *array_url
並把它放在主塊,然後其確定(但這不是我的目標),是不可能把數組放在結構?
#import <Foundation/Foundation.h>
struct OSX {
__unsafe_unretained NSString *input_url;
__unsafe_unretained NSString *use_url;
__unsafe_unretained NSArray *array_url; //USE it later in other place
};
int main(int argc, const char * argv[]) {
@autoreleasepool {
struct OSX struct_OSX;
struct_OSX.input_url = @"test1:test2:test3:..:..:99:9900";
NSArray *struct_OSX.array_url = [struct_OSX.input_url componentsSeparatedByString:@":"];
NSLog(@"%@", struct_OSX.array_url);
for(NSArray *subArray in struct_OSX.array_url) {
NSLog(@"%@", subArray);
}
NSLog(@"%@", [struct_OSX.array_url objectAtIndex:1]);
// let me validate the array: if ([struct_OSX.array_url length] == 0) { }
}
return 0;
}
大概的此重複:http://stackoverflow.com/questions/2488877/using-c-structs-which-contains-objc-objects基本上爲C包含Objective-C對象的結構是一個非常糟糕的想法(tm)(pat。pend。)。 – matt
'NSArray * struct_OSX.array_url = ...'根本沒有意義。如果我糾正它,我不會得到任何診斷信息。什麼是錯誤信息,以及你在哪個位置得到它?順便說一句:代碼只能工作,因爲數組是用方便的分配器構造的,而且ARP沒有關閉。這對你來說很清楚嗎? –
工作我已經發布它作爲答案。 – YumYumYum