Objective c 在类上填充数组
我有一个小小的(也许)非常简单的问题,让我的大脑崩溃了 我创建了一个类“ArrayClass”: 现在我想在我的主文件中的这个类的对象上填充这个数组 我认为这是正确的,但不幸的是没有结果Objective c 在类上填充数组,objective-c,ios6,Objective C,Ios6,我有一个小小的(也许)非常简单的问题,让我的大脑崩溃了 我创建了一个类“ArrayClass”: 现在我想在我的主文件中的这个类的对象上填充这个数组 我认为这是正确的,但不幸的是没有结果 //Main File: //Create an object ArrayClass *object_bla = [[ArrayClass alloc] init]; 那么如何用“object_bla”对象填充数组呢 我无法访问此阵列。对于正常值,例如int变量,我没有问题 事实上,我昨天还没走远。这就
//Main File:
//Create an object
ArrayClass *object_bla = [[ArrayClass alloc] init];
那么如何用“object_bla”对象填充数组呢
我无法访问此阵列。对于正常值,例如int变量,我没有问题
事实上,我昨天还没走远。这就是我想做的 我需要一个类,在其中我创建了一个数组。这是因为我想稍后用一些userinput填充这个数组 所以我上了我的课: A类h
#import <Foundation/Foundation.h>
@interface AClass : NSObject
//Array deklarieren
@property NSMutableArray *WordList;
@end
#导入
@接口AClass:NSObject
//数组deklarieren
@属性NSMutableArray*字列表;
@结束
否在主文件中,我要创建此类的对象,以访问*WordList数组。稍后,课程会有更多的内容,所以这是一次试用。
我是C++开发人员,对Objto-C非常新,所以请修改我的NoOB问题PLS。
这就是我到目前为止所做的:
#import <Foundation/Foundation.h>
#import "AClass.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
//create object
AClass *blabla = [[AClass alloc] init];
//fill array
[blabla.WordList addObject:@"GünterKörper"];
//output
for (int i = 0; i<[blabla.WordList count]; i++){
NSLog(@"Objekte: %@", [blabla.WordList objectAtIndex:i]);
}
}
return 0;
}
#导入
#导入“AClass.h”
int main(int argc,const char*argv[]
{
@自动释放池{
//创建对象
AClass*blabla=[[AClass alloc]init];
//填充数组
[blabla.WordList addObject:@“GünterKörper”];
//输出
对于(int i=0;i您需要为名称列表创建属性
@property (strong) NSMutableArray *NameList;
然后在main
文件中
在main中创建一个tempArray
,用一些数组填充它,然后使用:
NSMutableArray *tempArray=[NSMutableArray arrayWithArray:@[@"A",@"B",@"C"]];
[object_bla setNameList:tempArray;
如果要一次添加一个对象,请执行以下操作:
[object_bla.NameList addObject:@"new object"];
在向数组中添加对象之前,需要实例化数组。这可以通过多种方式完成:
1-在自定义类的init方法中:
@implementation AClass
- (id)init {
self = [super init];
if (self) {
_WordList = [[NSMutableArray alloc] init];
}
return self
}
// Rest of class implementation...
@end
2-通过在自定义类中实现自己的属性getter来使用延迟加载
@implementation AClass
- (NSMutableArray *)WordList {
if (_WordList == nil) {
_WordList = [[NSMutableArray alloc] init];
}
return _WordList;
}
// Rest of class implementation...
@end
第二个可能是首选的,因为它只在您实际引用对象时分配内存。谢谢您的回答。这是可行的。如果没有tempArray,是否不可能填充此数组?可以这样做,但我的问题还没有结束:-)谢谢你的回答。这很有效。没有tempArray就无法填充此数组吗?是的,可以。你需要手动填充,通过addObject:
一次添加一个元素,如我的最后一行所示。我不知道你在这里试图完成什么。你创建了ArrayClass的一个实例,然后你想把它放进去数组中的实例(实际上是指向它的指针)?为什么要这样做?
@implementation AClass
- (NSMutableArray *)WordList {
if (_WordList == nil) {
_WordList = [[NSMutableArray alloc] init];
}
return _WordList;
}
// Rest of class implementation...
@end