我是 iOS 编程的初学者,我需要一些关于从函数返回数组的帮助。 我有我的应用程序的这种结构(如果它是正确的,我不知道):
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;
}
该函数用于从用户表中获取所有用户并返回用户数组。
我想在 LoginVC.m 中调用这个函数,所以我将这段代码推送到函数 viewDidLoad 中:
UserController *userController = [[UserController alloc]init];
[userController getUsers];
NSArray *users = [[NSArray alloc]init];
users = [userController getUsers];
但是当我启动应用程序时出现错误或警告 - Incomaptible pointer types assigning to NSArray* from User* 我不知道为什么是真正的问题,因为函数 getAllUsers 返回 Array 而我分配给 Array。感谢您的帮助。
最佳答案
我在您发布的代码中没有看到任何 User *
,但我认为编译器警告的唯一合乎逻辑的解释是 getUsers
在 中声明>UserController.h
作为 - (User *)getUsers
而不是 - (NSArray *)getUsers
。
关于ios - 从 User * 分配给 NSArray * 的不兼容指针类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22101846/