我仍然在努力提高"My Second iOS App",這是蘋果公司提供的教程。以下是故事板的圖片,並添加了對應該發生的評論的評論。「你的第二個iOS應用程序」:我如何實現一個Singleton?
當完成按鈕(步驟3)點擊,實際屏幕應該返回到主菜單(3.A),而成品BirdSightingObject應加的BirdMasterViewController
列表(3.B )。所以我認爲我可以使用Singleton,因爲可以只有一個對象同時添加,並且使得從不同類訪問更容易。
在本教程中,已經爲數據處理「BirdSighting
」給出了一個類,它可能可以用作單例。但正如我OOP和設計模式的只有初級水平的知識,我不知道,如果我可以用這個,或者如果我不得不寫我自己在參考現有的類。
其次:我沒有絲毫的想法如何訪問BirdMasterViewController
在(IBAction)done
方法,最終保存對象在列表中。
注意:以下源代碼部分由Apple,Inc.提供。請參閱this以查看本教程的完整代碼清單。沒有任何版權的權利。
BirdSighting.h
:
@interface BirdSighting : NSObject
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *location;
@property (nonatomic, strong) NSDate *date;
- (id)initWithName:(NSString *)name location:(NSString *)location date:(NSDate *)date;
- (id)initWithNameOnly:(NSString *)name date:(NSDate *)date;
@end
BirdSighting.m
:
#import "BirdSighting.h"
@implementation BirdSighting
- (id)initWithName:(NSString *)name location:(NSString *)location date:(NSDate *)date
{
self = [super init];
if (self)
{
_name = name;
_location = location;
_date = date;
return self;
}
return nil;
}
-(id)initWithNameOnly:(NSString *)name date:(NSDate *)date
{
self = [super init];
if (self)
{
_name = name;
_date = date;
return self;
}
return nil;
}
@end
的(IBAction)done
方法,在MainMenuViewController.m
:
- (IBAction)done:(UIStoryboardSegue *)segue
{
if ([[segue identifier] isEqualToString:@"ReturnInput"])
{
AddLocationToSighting *addController = [segue sourceViewController];
if (addController.birdSighting)
{
[self.dataController addBirdSightingWithSighting:addController.birdSighting];
[[self tableView] reloadData];
}
[self dismissViewControllerAnimated:YES completion:NULL];
}
}
總結:
- 可以將
BirdSighting
轉換成單例嗎?如果是這樣,缺少什麼? (不需要爲我編碼,我希望如果您提供提示,我可以自己做。) - 如何將對象保存在
BirdMasterViewController
?我不知道如何訪問noninvolved的ViewController在(IBAction)done
。
P.S .:如果我的問題是具體的,或者如果我應該分開這兩個問題,請讓我知道。我對Stackoverflow也很新。 – RNelke 2013-03-27 08:45:14
我猜這裏的人不允許幫助其他人,不管他們能否幫忙。祝你好運@RNelke – 2013-03-27 09:03:31
@DipenPanchasara我們不允許的是質量低下的答案,他們可能被認爲對提問者毫無價值。這個網站不是關於如何通過cruft進行的,而是要把質量的答案和問題放在每個人都可以看到他們並向他們學習的地方。我不是故意在那裏粗魯的,只是我們期望這裏的帖子質量更高。 – CodaFi 2013-03-27 09:06:20