【发布时间】:2020-12-18 17:10:15
【问题描述】:
您好,我是 Objective-C 和 Swift 编程的初级人员。
我在 ExampleMenuViewController.m 或(和)SomeClass.m 中有 NSMutableArray 声明为 vcTabs。
NSMutableArray *vcTabs;
当我有两个声明'vcTabs'时,Xcode 返回duplicate symbol '_vcTabs' (...)
如何将对象添加到其他类(ExampleMenuViewController.m)中的现有 NSMutableArray init? 我需要将另一个类 (SomeClass.m) 中的新对象附加到 vcTabs (NSMutableArray)。
我在 SomeClass.m 中写了这段代码:
if ([Tools isNonullValueForKey:[dictionary valueForKey:@"additional_tabs"]]) {
additional_tabs = [dictionary valueForKey:@"additional_tabs"];
NSLog(@"additionalTabs count: %lu", [additional_tabs count]);
for (int i = 0; i < [additional_tabs count]; i++) {
if ([Tools isNonullValueForKey:[additional_tabs valueForKey:@"_id"]]) {
additional_tab_id = [[additional_tabs valueForKey:@"_id"] objectAtIndex:i];
}
if ([Tools isNonullValueForKey:[additional_tabs valueForKey:@"names"]]) {
NSDictionary *dic = [[additional_tabs valueForKey:@"names"] objectAtIndex:i];
_en_additional_tab_name = [dic valueForKey:@"en"];
_pl_additional_tab_name = [dic valueForKey:@"pl"];
}
if ([Tools isNonullValueForKey:[additional_tabs valueForKey:@"url"]]) {
additional_tab_url = [[additional_tabs valueForKey:@"url"] objectAtIndex:i];
//NSLog(@"additional_tab_url: %@", _additional_tab_url);
}
[vcTabs addObject:[[VCTab alloc] initWithIdAndTypeAndUrl:additional_tab_id :VCTabAdditional :additional_tab_url]];
NSLog(@"%@ %d %@ %@ %@ %@", @"pos", i, @"id: ", additional_tab_id, @"url: ", additional_tab_url);
}
}
带有 initVCTabs 的 ExampleMenuViewController 方法
- (void)initVCTabs {
vcTabs = [[NSMutableArray alloc] init];
[vcTabs removeAllObjects];
if ([Tools getBooleanUserDefault:@"example_visible_tab_attendees" :YES]) {
[vcTabs addObject:[[VCTab alloc] initWithType:VCTabAttendees]];
}
(...)
if ([Tools getBooleanUserDefault:@"example_visible_tab_user_info" :YES]) {
[vcTabs addObject:[[VCTab alloc] initWithType:VCTabUserInfo]];
}
if ([Tools getStringUserDefault:@"example_additional_tab_id" :@""]) {
NSString *additionalTabId = [Tools getStringUserDefault:@"conference_additional_tab_id" :@""];
NSString *additionalTabUrl = [Tools getStringUserDefault:@"conference_additional_tab_url" :@""];
NSLog(@"additionalTabId %@", additionalTabId);
NSLog(@"additionalTabUrl %@", additionalTabUrl);
[vcTabs addObject:[[VCTab alloc] initWithIdAndTypeAndUrl:additionalTabId :VCTabAdditional :additionalTabUrl]];
}
}
PS。如果我从 ExampleMenuViewController 中使用,我只有一个带有最后一个对象属性的选项卡...但 additional_tabs 数组有 17 个对象。
您有什么想法或建议吗? 祝大家一切顺利!
【问题讨论】:
标签: ios objective-c xcode nsarray nsdictionary