2012-03-28 124 views
-1

我有一個應用程序,我在plist中有一個URL,並且一個web視圖讀取它以知道哪個頁面在開始時加載。下面的代碼:這裏有什麼問題?

.h 

{ 
IBOutlet UIWebView *webView; 
} 
@property (retain, nonatomic) NSArray *array; 
-(NSString *) dataFilePath; 


.m 

@synthesize array; 
- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
NSMutableArray *Array = [[NSMutableArray alloc] init]; 
[Array addObject:@"http://www.google.com"]; 
[Array writeToFile:[self dataFilePath] atomically:YES]; 
NSString *filePath = [self dataFilePath]; 
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) 
{ 
    array = [[NSArray alloc] initWithContentsOfFile:filePath]; 
} 
NSString *string = [NSString stringWithString:[array objectAtIndex:0]]; 
[webView loadRequest:[[NSURLRequest alloc] initWithURL:[[NSURL alloc] initWithString:string]]]; 
}     

-(NSString *) dataFilePath 
{ 
    NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentDirectory = [path objectAtIndex:0]; 

    return [documentDirectory stringByAppendingPathComponent:@"url.plist"]; 
} 

的問題是,這是行不通的。它返回到我SIGABRT ......任何人都知道我在做什麼錯? PS:我不太瞭解plists。我不太瞭解plists。我不太瞭解plists。我不太瞭解plists。我不太瞭解plists。

+1

什麼是整個錯誤信息? – lnafziger 2012-03-28 20:08:00

+0

以及哪條線是從sigabrt投擲出來的?你的堆棧是什麼樣的?當它在調試類型「bt」(不帶引號)和gdb或lldb提示符下崩潰時。 – Cliff 2012-03-28 20:22:54

+0

崩潰在[webView的loadRequest:[[NSURLRequest分配] initWithURL:[[NSURL分配] initWithString:字符串]]]; – 2012-03-28 20:30:39

回答

2

你有一些泄漏的loadRequest與方法,試圖將其更改爲

[webView loadRequest:[[[NSURLRequest alloc] initWithURL:[NSURL urlWithString:string]] autorelease] ]; 
+0

其實他的數組是由alloc/init保留的。我也注意到了怪異,但是由於他直接訪問iVar而不是通過屬性訪問器,它會很好,但很奇怪。在你的例子中,你想添加一個autorelease,因爲他聲明屬性保留。 – Cliff 2012-03-28 20:21:47

+0

@崖,謝謝,對不起。我很困惑於命名數組和數組 – beryllium 2012-03-28 20:26:33

+0

YE,但我相信這是有意的,因爲它看起來像我們試圖存儲一個變量並將其讀回到一個類似但奇數名稱的新變量中。 – Cliff 2012-03-28 20:29:46

相關問題