我是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