我是iOS编程的初学者,我需要一些帮助从函数返回数组。 我有我的应用程序的这种结构(我不知道,如果它是正确的):从用户分配给NSArray *的指针类型不兼容*
https://www.dropbox.com/s/md4b2nrdf09wdny/Screenshot%202014-02-28%2018.11.30.png
User.h/.M是从CoreData模型生成的文件,并有4个属性。
LoginVC.h/.m用于登录到应用程序(授权)。
UserController的使用与用户结构工作 - 保存用户,更新用户,让所有用户等
我需要什么...我有功能UserController.m功能如下:
-(NSArray *)getUsers{
CoreDataHelper *cdh = [(AppDelegate *)[[UIApplication sharedApplication]delegate] cdh];
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"User"];
NSArray *Users = [cdh.context executeFetchRequest:request error:nil];
return Users;
}
该功能用于从表User中获取所有用户并返回用户数组。
我想打电话给在LoginVC.m这个功能,所以我把这个代码的功能viewDidLoad中:
UserController *userController = [[UserController alloc]init];
[userController getUsers];
NSArray *users = [[NSArray alloc]init];
users = [userController getUsers];
但是当我启动应用程序存在错误或警告 - Incomaptible指针类型分配给的NSArray *来自用户*,我不知道为什么是真正的问题,因为函数getAllUsers返回数组,我分配给数组。谢谢你的帮助。
我们可以从UserController.h中看到getUsers的声明吗? –
你的第二批代码似乎是多余的。最下面的三行可以合并成'NSArray * users = [userController getUsers];'。这可能会解决你的问题,但我不确定。 – hgwhittle
不需要分配/ init用户,然后将其设置为[userController getUsers]的返回值。如果你使用的是弧,你可以这样做:NSArray * users = [userController getUsers],但是如果你不使用弧,只需在[userController getUsers]的末尾引入一个保留。 – daveMac