![](/img/trans.png)
[英]incompatible pointer types assigning to 'nsmutablearray ' from 'nsarray '
[英]Incompatible pointer types assigning to NSArray * from User *
我是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;
}
該函數用於從表User中獲取所有用戶並返回用戶數組。
我想在LoginVC.m中調用此函數,因此我將此代碼推送到函數viewDidLoad:
UserController *userController = [[UserController alloc]init];
[userController getUsers];
NSArray *users = [[NSArray alloc]init];
users = [userController getUsers];
但是,當我啟動應用程序時,會出現錯誤或警告-從User *分配給NSArray *的指針類型不兼容,我不知道為什么是真正的問題,因為函數getAllUsers返回Array且我分配給Array。 謝謝你的幫助。
着色為您提供提示。
將您的變量Users
重命名為以下users
:
NSArray *Users = [cdh.context executeFetchRequest:request error:nil];
我在您發布的代碼中沒有看到任何User *
,但是我認為對編譯器警告的唯一邏輯解釋是,在UserController.h
中將getUsers
聲明為- (User *)getUsers
而不是- (NSArray *)getUsers
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.