为我的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