iOS アプリの開発は初めてで、英語は母国語ではないため、間違いや見苦しいコードがあればご容赦ください。
私が作成しようとしているアプリは、ある特定の日に特定の画像を 1 つだけ表示する必要があります (日付が変更された場合は画像を変更します)。したがって、日付をチェックする無限ループを実装しました。前回変更した画像と異なる場合は、再度画像が変更されます。画像は "YearMonthDay.png" スキームで名前が付けられます (例: "20131017.png")。
私はすでにたくさんのグーグル検索を行い、いくつかのコードをまとめました(かなり醜いことは知っています)が、毎回クラッシュします。
私は本当に助けていただければ幸いです!
smViewController.h:
#import <UIKit/UIKit.h>
@interface smViewController : UIViewController {
UIImageView* mImageView;
}
@property (nonatomic, retain) IBOutlet UIImageView* imageView;
- (IBAction)contentModeChanged:(UISegmentedControl*)segmentedControl;
@end
smViewController.m
#import "smViewController.h"
@interface smViewController ()
@end
@implementation smViewController
@synthesize imageView = mImageView;
- (void)viewDidUnload
{
self.imageView = nil;
[super viewDidUnload];
}
- (void)dealloc
{
[mImageView release];
[super dealloc];
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *oldDateString = @"";
while(true)
{
NSDate *today = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy/MM/dd"];
NSString *dateString = [dateFormat stringFromDate:today];
NSLog(@"date: %@", dateString);
if([dateString isEqualToString: oldDateString])
{
}
else
{
NSAssert(self.imageView, @"self.imageView is nil. Check your IBOutlet connections");
UIImage* image = [UIImage imageNamed:dateString];
NSAssert(image, @"image is nil. Check that you added the image to your bundle and that the filename above matches the name of you image.");
self.imageView.backgroundColor = [UIColor whiteColor];
self.imageView.clipsToBounds = YES;
self.imageView.image = image;
oldDateString = dateString;
}
[dateFormat release];
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end