Ứng dụng iPhone của tôi thỉnh thoảng gặp sự cố khi lần đầu tiên nó chạy sau khi được cài đặt. Sau này mỗi lần tôi thử và chạy ứng dụng nó vẫn còn trên màn hình giật gân hoặc thậm chí một màn hình màu đen cho đến khi cuối cùng nó chết. Tôi phải khởi động lại thiết bị để ứng dụng hoạt động. Sau này nó hoạt động tốt mọi lúc. Sự thay đổi duy nhất giữa mã OS3 và 4 là thuộc tính 'UIApplicationExitsOnSuspend' để buộc ứng dụng phải tải lại mỗi lần thay vì tạm dừng. Bất kỳ sự trợ giúp nào đều sẽ là tuyệt vời.Tai nạn ứng dụng iPhone (Chỉ dành cho iOS4)
Dưới đây là các đoạn hai Code:
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
taskListViewController = [[TaskListViewController alloc] initWithNibName:@"TaskListView" bundle:nil];
taskListViewController.managedObjectContext = self.managedObjectContext;
[taskListViewController setAppDefaults];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:taskListViewController];
[taskListViewController release];
navController.navigationBar.tintColor = [UIColor blackColor];
[window addSubview:[navController view]];
[window makeKeyAndVisible];
}
Phương pháp- (void)viewDidLoad
{
NSLog(@"viewDidLoad - Start");
[super viewDidLoad];
NSError *error = nil;
if(![[self fetchedResultsController] performFetch:&error])
{
NSLog(@"Error with initial fetch %@, %@", error, [error userInfo]);
}
[activityIndicator startAnimating];
self.navigationItem.leftBarButtonItem.enabled = NO;
self.navigationItem.rightBarButtonItem.enabled = NO;
infoButton.enabled = NO;
syncButton.enabled = NO;
taskListTable.userInteractionEnabled = NO;
taskListTable.allowsSelection = NO;
checkingRecovery = true;
[self insertCheck];
}
khác được đề cập ở trên:
[taskListViewController setAppDefaults]
[self insertCheck];
setAppDefaults - liệt kê thông qua các thiết lập gói áp dụng defaultValues để NSUserDefaults nếu họ chưa được thiết lập bởi người dùng trong các tạp chí.
insertCheck - Thực hiện một số truy vấn trên db để đảm bảo tính toàn vẹn tệp trên bản ghi âm nhưng trong trường hợp này vì đây là lần đầu tiên ứng dụng được tải, nó sẽ không làm gì cả.
Cập nhật:
tôi đã nhận xét ra các cuộc gọi phương pháp thêm (hai ở trên) và tôi vẫn gặp vấn đề.
Tôi đã tìm thấy một vài người có cùng một loại vấn đề trên diễn đàn nhà phát triển của Apple mà không có giải pháp. Một câu trả lời là từ một người dùng có cùng một vấn đề nhưng có ứng dụng đã được phê duyệt trên cửa hàng ứng dụng.
Cảm ơn Sj
Bạn có thể chỉnh sửa bài đăng của mình để bao gồm mã cho những gì đang xảy ra trong phương thức 'applicationDidFinishLaunching' và' viewDidLoad' của bạn. Ngoài ra, hãy chắc chắn rằng bạn không có bất kỳ 'NSLogs' nào với các chuỗi định dạng dữ liệu sai (% d khi nó phải là% @ chẳng hạn), chúng có thể gây ra sự cố mà không có bất kỳ thông báo lỗi nào được hiển thị. – iwasrobbed
Tải cửa sổ của bạn trông bình thường, tôi sẽ nói nếu nó không phải do người dùng mặc định của bạn, hãy bắt đầu gỡ lỗi theo cách của bạn thông qua mã kiểm tra cơ sở dữ liệu của bạn hoặc kết quả tìm nạp ban đầu. – iwasrobbed