簡體   English   中英

應用程式當機,無法解釋

[英]App is crashing, unexplained

我在控制台中收到以下錯誤:

2010-01-07 18:15:19.036 FlagLearner[13310:207] *** -[NSCFString objectForKey:]: unrecognized selector sent to instance 0x3814530
2010-01-07 18:15:19.039 FlagLearner[13310:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFString objectForKey:]: unrecognized selector sent to instance 0x3814530'
2010-01-07 18:15:19.047 FlagLearner[13310:207] Stack: (

我沒有警告,沒有構建錯誤,也沒有任何分析器結果。 然而,它崩潰了! 誰能找出原因?

如果您希望我向您發送消息來源以進行查看,請隨時通過██████████████@gmail.com給我發送電子郵件。

這是實現文件:

//
//  RootViewController.m
//  Pop,Cap,Flag!
//
//  Created by Samstrix Apps on 6/01/10.
//  Copyright __MyCompanyName__ 2010. All rights reserved.
//

#import "RootViewController.h"
#import "Pop_Cap_Flag_AppDelegate.h"
#import "DetailViewController.h"


@implementation RootViewController



- (void)viewDidLoad {
    [super viewDidLoad];

    NSLog(@"here1");

    //init array
    listOfItems = [[NSMutableArray alloc] init];
    //add items
NSLog(@"here2");
    NSString *filePathA = [[NSBundle mainBundle] pathForResource:@"A" ofType:@"txt"];
    NSString *myTextA= [NSString stringWithContentsOfFile:filePathA                     encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresA = [myTextA componentsSeparatedByString:@"-"];
NSLog(@"here3");

NSString *filePathB = [[NSBundle mainBundle] pathForResource:@"B" ofType:@"txt"];
NSString *myTextB= [NSString stringWithContentsOfFile:filePathB encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresB = [myTextB componentsSeparatedByString:@"-"];

NSString *filePathC = [[NSBundle mainBundle] pathForResource:@"C" ofType:@"txt"];
NSString *myTextC= [NSString stringWithContentsOfFile:filePathC encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresC = [myTextC componentsSeparatedByString:@"-"];

NSString *filePathD = [[NSBundle mainBundle] pathForResource:@"D" ofType:@"txt"];
NSString *myTextD= [NSString stringWithContentsOfFile:filePathD encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresD = [myTextD componentsSeparatedByString:@"-"];

NSString *filePathE = [[NSBundle mainBundle] pathForResource:@"E" ofType:@"txt"];
NSString *myTextE= [NSString stringWithContentsOfFile:filePathE encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresE = [myTextE componentsSeparatedByString:@"-"];

NSString *filePathF = [[NSBundle mainBundle] pathForResource:@"F" ofType:@"txt"];
NSString *myTextF= [NSString stringWithContentsOfFile:filePathF encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresF = [myTextF componentsSeparatedByString:@"-"];

NSString *filePathG = [[NSBundle mainBundle] pathForResource:@"G" ofType:@"txt"];
NSString *myTextG= [NSString stringWithContentsOfFile:filePathG encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresG = [myTextG componentsSeparatedByString:@"-"];

NSString *filePathH = [[NSBundle mainBundle] pathForResource:@"H" ofType:@"txt"];
NSString *myTextH= [NSString stringWithContentsOfFile:filePathH encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresH = [myTextH componentsSeparatedByString:@"-"];

NSString *filePathI = [[NSBundle mainBundle] pathForResource:@"I" ofType:@"txt"];
NSString *myTextI= [NSString stringWithContentsOfFile:filePathI encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresI = [myTextI componentsSeparatedByString:@"-"];

NSString *filePathJ = [[NSBundle mainBundle] pathForResource:@"J" ofType:@"txt"];
NSString *myTextJ= [NSString stringWithContentsOfFile:filePathJ encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresJ = [myTextJ componentsSeparatedByString:@"-"];

NSString *filePathK = [[NSBundle mainBundle] pathForResource:@"K" ofType:@"txt"];
NSString *myTextK= [NSString stringWithContentsOfFile:filePathK encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresK = [myTextK componentsSeparatedByString:@"-"];

NSString *filePathL = [[NSBundle mainBundle] pathForResource:@"L" ofType:@"txt"];
NSString *myTextL= [NSString stringWithContentsOfFile:filePathL encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresL = [myTextL componentsSeparatedByString:@"-"];

NSString *filePathM = [[NSBundle mainBundle] pathForResource:@"M" ofType:@"txt"];
NSString *myTextM= [NSString stringWithContentsOfFile:filePathM encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresM = [myTextM componentsSeparatedByString:@"-"];

NSString *filePathN = [[NSBundle mainBundle] pathForResource:@"N" ofType:@"txt"];
NSString *myTextN = [NSString stringWithContentsOfFile:filePathN encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresN = [myTextN componentsSeparatedByString:@"-"];

NSString *filePathO = [[NSBundle mainBundle] pathForResource:@"O" ofType:@"txt"];
NSString *myTextO= [NSString stringWithContentsOfFile:filePathO encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresO = [myTextO componentsSeparatedByString:@"-"];

NSString *filePathP = [[NSBundle mainBundle] pathForResource:@"P" ofType:@"txt"];
NSString *myTextP= [NSString stringWithContentsOfFile:filePathP encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresP = [myTextP componentsSeparatedByString:@"-"];

NSString *filePathQ = [[NSBundle mainBundle] pathForResource:@"Q" ofType:@"txt"];
NSString *myTextQ= [NSString stringWithContentsOfFile:filePathQ encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresQ = [myTextQ componentsSeparatedByString:@"-"];

NSString *filePathR = [[NSBundle mainBundle] pathForResource:@"R" ofType:@"txt"];
NSString *myTextR= [NSString stringWithContentsOfFile:filePathR encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresR = [myTextR componentsSeparatedByString:@"-"];

NSString *filePathS = [[NSBundle mainBundle] pathForResource:@"S" ofType:@"txt"];
NSString *myTextS= [NSString stringWithContentsOfFile:filePathS encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresS = [myTextS componentsSeparatedByString:@"-"];

NSString *filePathT = [[NSBundle mainBundle] pathForResource:@"T" ofType:@"txt"];
NSString *myTextT= [NSString stringWithContentsOfFile:filePathT encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresT = [myTextT componentsSeparatedByString:@"-"];

NSString *filePathU = [[NSBundle mainBundle] pathForResource:@"U" ofType:@"txt"];
NSString *myTextU= [NSString stringWithContentsOfFile:filePathU encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresU = [myTextU componentsSeparatedByString:@"-"];

NSString *filePathV = [[NSBundle mainBundle] pathForResource:@"V" ofType:@"txt"];
NSString *myTextV= [NSString stringWithContentsOfFile:filePathV encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresV = [myTextV componentsSeparatedByString:@"-"];

NSString *filePathW = [[NSBundle mainBundle] pathForResource:@"W" ofType:@"txt"];
NSString *myTextW= [NSString stringWithContentsOfFile:filePathW encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresW = [myTextW componentsSeparatedByString:@"-"];
//none with "X"
//NSString *filePathX = [[NSBundle mainBundle] pathForResource:@"X" ofType:@"txt"];
//NSString *myTextX= [NSString stringWithContentsOfFile:filePathX encoding:NSUTF8StringEncoding error:nil];
//NSArray *arrayStructuresX = [myTextX componentsSeparatedByString:@"-"];

NSString *filePathY = [[NSBundle mainBundle] pathForResource:@"Y" ofType:@"txt"];
NSString *myTextY= [NSString stringWithContentsOfFile:filePathY encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresY = [myTextY componentsSeparatedByString:@"-"];

NSString *filePathZ = [[NSBundle mainBundle] pathForResource:@"Z" ofType:@"txt"];
NSString *myTextZ= [NSString stringWithContentsOfFile:filePathZ encoding:NSUTF8StringEncoding error:nil];
NSArray *arrayStructuresZ = [myTextZ componentsSeparatedByString:@"-"];

NSLog(@"here4");

NSLog(@"here5");








[listOfItems addObjectsFromArray:arrayStructuresA];
[listOfItems addObjectsFromArray:arrayStructuresB];
[listOfItems addObjectsFromArray:arrayStructuresC];
[listOfItems addObjectsFromArray:arrayStructuresD];
[listOfItems addObjectsFromArray:arrayStructuresE];
[listOfItems addObjectsFromArray:arrayStructuresF];
[listOfItems addObjectsFromArray:arrayStructuresG];
[listOfItems addObjectsFromArray:arrayStructuresH];
[listOfItems addObjectsFromArray:arrayStructuresI];
[listOfItems addObjectsFromArray:arrayStructuresJ];
[listOfItems addObjectsFromArray:arrayStructuresK];
[listOfItems addObjectsFromArray:arrayStructuresL];
[listOfItems addObjectsFromArray:arrayStructuresM];
[listOfItems addObjectsFromArray:arrayStructuresN];
[listOfItems addObjectsFromArray:arrayStructuresO];
[listOfItems addObjectsFromArray:arrayStructuresP];
[listOfItems addObjectsFromArray:arrayStructuresQ];
[listOfItems addObjectsFromArray:arrayStructuresR];
[listOfItems addObjectsFromArray:arrayStructuresS];
[listOfItems addObjectsFromArray:arrayStructuresT];                                                     
[listOfItems addObjectsFromArray:arrayStructuresU]; 
[listOfItems addObjectsFromArray:arrayStructuresV];
[listOfItems addObjectsFromArray:arrayStructuresW]; 
//  [listOfItems addObjectsFromArray:arrayStructuresX]; 
[listOfItems addObjectsFromArray:arrayStructuresY]; 
[listOfItems addObjectsFromArray:arrayStructuresZ]; 



//set the titles
self.navigationItem.title = @"Countries";   
NSLog(@"here6");

//[StartWithA addObjectFromArray:arrayStructuresA];
NSLog(@"here6.5");





NSDictionary *StartWithADict = [NSDictionary dictionaryWithObject:arrayStructuresA forKey:@"Countries"];

NSLog(@"here7");
//NSDictionary *countriesToLiveInDict = [NSDictionary dictionaryWithObject:countriesToLiveInArray forKey:@"Countries"];

//[StartWithB addObjectsFromArray:arrayStructuresB];
NSDictionary *StartWithBDict = [NSDictionary dictionaryWithObject:arrayStructuresB forKey:@"Countries"];

//[StartWithC addObjectsFromArray:arrayStructuresC];
NSDictionary *StartWithCDict = [NSDictionary dictionaryWithObject:arrayStructuresC forKey:@"Countries"];

//  [StartWithD addObjectsFromArray:arrayStructuresD];
NSDictionary *StartWithDDict = [NSDictionary dictionaryWithObject:arrayStructuresD forKey:@"Countries"];

//  [StartWithE addObjectsFromArray:arrayStructuresE];
NSDictionary *StartWithEDict = [NSDictionary dictionaryWithObject:arrayStructuresE forKey:@"Countries"];

//[StartWithF addObjectsFromArray:arrayStructuresF];
NSDictionary *StartWithFDict = [NSDictionary dictionaryWithObject:arrayStructuresF forKey:@"Countries"];

//  [StartWithG addObjectsFromArray:arrayStructuresG];
NSDictionary *StartWithGDict = [NSDictionary dictionaryWithObject:arrayStructuresG forKey:@"Countries"];

//  [StartWithH addObjectsFromArray:arrayStructuresH];
NSDictionary *StartWithHDict = [NSDictionary dictionaryWithObject:arrayStructuresH forKey:@"Countries"];

//  [StartWithI addObjectsFromArray:arrayStructuresI];
NSDictionary *StartWithIDict = [NSDictionary dictionaryWithObject:arrayStructuresI forKey:@"Countries"];

//  [StartWithJ addObjectsFromArray:arrayStructuresJ];
NSDictionary *StartWithJDict = [NSDictionary dictionaryWithObject:arrayStructuresJ forKey:@"Countries"];

//  [StartWithK addObjectsFromArray:arrayStructuresK];
NSDictionary *StartWithKDict = [NSDictionary dictionaryWithObject:arrayStructuresK forKey:@"Countries"];

//[StartWithL addObjectsFromArray:arrayStructuresL];
NSDictionary *StartWithLDict = [NSDictionary dictionaryWithObject:arrayStructuresL forKey:@"Countries"];

//  [StartWithM addObjectsFromArray:arrayStructuresM];
NSDictionary *StartWithMDict = [NSDictionary dictionaryWithObject:arrayStructuresM forKey:@"Countries"];


//[StartWithN addObjectsFromArray:arrayStructuresN];
NSDictionary *StartWithNDict = [NSDictionary dictionaryWithObject:arrayStructuresN forKey:@"Countries"];

//  [StartWithO addObjectsFromArray:arrayStructuresO];
NSDictionary *StartWithODict = [NSDictionary dictionaryWithObject:arrayStructuresO forKey:@"Countries"];

//  [StartWithP addObjectsFromArray:arrayStructuresP];
NSDictionary *StartWithPDict = [NSDictionary dictionaryWithObject:arrayStructuresP forKey:@"Countries"];


//  [StartWithQ addObjectsFromArray:arrayStructuresQ];
NSDictionary *StartWithQDict = [NSDictionary dictionaryWithObject:arrayStructuresQ forKey:@"Countries"];

//[StartWithR addObjectsFromArray:arrayStructuresR];
NSDictionary *StartWithRDict = [NSDictionary dictionaryWithObject:arrayStructuresR forKey:@"Countries"];

//  [StartWithS addObjectsFromArray:arrayStructuresS];
NSDictionary *StartWithSDict = [NSDictionary dictionaryWithObject:arrayStructuresS forKey:@"Countries"];

/// [StartWithT addObjectsFromArray:arrayStructuresT];
NSDictionary *StartWithTDict = [NSDictionary dictionaryWithObject:arrayStructuresT forKey:@"Countries"];

//  [StartWithU addObjectsFromArray:arrayStructuresU];
NSDictionary *StartWithUDict = [NSDictionary dictionaryWithObject:arrayStructuresU forKey:@"Countries"];

//  [StartWithV addObjectsFromArray:arrayStructuresV];
NSDictionary *StartWithVDict = [NSDictionary dictionaryWithObject:arrayStructuresV forKey:@"Countries"];

//  [StartWithW addObjectsFromArray:arrayStructuresW];
NSDictionary *StartWithWDict = [NSDictionary dictionaryWithObject:arrayStructuresW forKey:@"Countries"];

//NSMutableArray *StartWithX;
//[StartWithX addObjectsFromArray:arrayStructuresX];
//NSDictionary *StartWithXDict = [NSDictionary dictionaryWithObject:arrayStructuresX forKey:@"Countries"];

//  [StartWithY addObjectsFromArray:arrayStructuresY];
NSDictionary *StartWithYDict = [NSDictionary dictionaryWithObject:arrayStructuresY forKey:@"Countries"];

//  [StartWithZ addObjectsFromArray:arrayStructuresZ];
NSDictionary *StartWithZDict = [NSDictionary dictionaryWithObject:arrayStructuresZ forKey:@"Countries"];
NSLog(@"Here8");

[listOfItems addObject:StartWithADict];
[listOfItems addObject:StartWithBDict];
[listOfItems addObject:StartWithCDict];
[listOfItems addObject:StartWithDDict];
[listOfItems addObject:StartWithEDict];
[listOfItems addObject:StartWithFDict];
[listOfItems addObject:StartWithGDict];
[listOfItems addObject:StartWithHDict];
[listOfItems addObject:StartWithIDict];
[listOfItems addObject:StartWithJDict];
[listOfItems addObject:StartWithKDict];
[listOfItems addObject:StartWithLDict];
[listOfItems addObject:StartWithMDict];
[listOfItems addObject:StartWithNDict];
[listOfItems addObject:StartWithODict];
[listOfItems addObject:StartWithPDict];
[listOfItems addObject:StartWithQDict];
[listOfItems addObject:StartWithRDict];
[listOfItems addObject:StartWithSDict];
[listOfItems addObject:StartWithTDict];
[listOfItems addObject:StartWithUDict];
[listOfItems addObject:StartWithVDict];
[listOfItems addObject:StartWithWDict];
//[listOfItems addObject:StartWithXDict];
[listOfItems addObject:StartWithYDict];
[listOfItems addObject:StartWithZDict];
NSLog(@"Here9");

// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
}   

- (void)didReceiveMemoryWarning {
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}



#pragma mark Table view methods

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    NSLog(@"Here10");
    NSLog(@"%d", [listOfItems count]);
    return [listOfItems count];


}

//this sets the number of row in the table view, by couting the number of objects (countries) in the array//
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    NSLog(@"Here12");


    //Number of rows it should expect should be based on the section
    NSDictionary *dictionary = [listOfItems objectAtIndex:section];
    NSArray *array = [dictionary objectForKey:@"Countries"];
    NSLog(@"this is the array count - %d", [array count]);
    return [array count];
    NSLog(@"Here13");

}// Customize the number of rows in the table view.


// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"Here14");

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
    }

    // Configure the cell.
    NSDictionary *dictionary = [listOfItems objectAtIndex:indexPath.section];
    NSArray *array = [dictionary objectForKey:@"Countries"];
    NSString *cellValue = [array objectAtIndex:indexPath.row];
    [cell.textLabel setText:cellValue];


    //NSString *cellValue = [listOfItems objectAtIndex:indexPath.row];
    //[cell.textLabel setText:cellValue];
    //[cell.textLabel setText:cellValue];
    NSLog(@"Here15");


    return cell;

    //NSLog(cellValue);
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section     {
NSLog(@"Here16");
if (section == 0) {
    return @"A";
}

if (section == 1) {
    return @"B";
}
if (section == 2) {
    return @"C";
}
if (section == 3) {
    return @"D";
}
if (section == 4) {
    return @"E";
}
if (section == 5) {
    return @"F";
}
if (section == 6) {
    return @"G";
}
if (section == 7) {
    return @"H";
}
if (section == 8) {
    return @"I";
}
if (section == 9) {
    return @"J";
}
if (section == 10) {
    return @"K";
}
if (section == 11) {
    return @"L";
}
if (section == 12) {
    return @"M";
}
if (section == 13) {
    return @"N";
}
if (section == 14) {
    return @"O";
}
if (section == 15) {
    return @"P";
}
if (section == 16) {
    return @"Q";
}

if (section == 17) {
    return @"R";
}
if (section == 18) {
    return @"S";
}
if (section == 19) {
    return @"T";
}
if (section == 20) {
    return @"U";
}
if (section == 21) {
    return @"V";
}

if (section == 22) {
    return @"W";
}
//if (section==0) {
    //return @"X";
//}
if (section == 23) {
    return @"Y";
}
if (section == 24) {
    return @"Z";
}

return @"";

//NSLog(@"%d", [listOfItems count]);



NSLog(@"That whole error thing");
}


- (UITableViewCellAccessoryType)tableView:(UITableView *)tableView accessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath{
NSLog(@"Here17");

return UITableViewCellAccessoryDisclosureIndicator;
}

// Override to support row selection in the table view.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"Here18");

    //Get the selected country

    NSDictionary *dictionary = [listOfItems objectAtIndex:indexPath.section];
    NSArray *array = [dictionary objectForKey:@"Countries"];
    NSString *selectedCountry = [array objectAtIndex:indexPath.row];

    //Initialize the detail view controller and display it.
    DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]];
    dvController.selectedCountry = selectedCountry;
    [self.navigationController pushViewController:dvController animated:YES];
    [dvController release];
    dvController = nil;
    /*
    NSString *selectedCountry = [listOfItems objectAtIndex:indexPath.row];
    //init the detail view controller and display it. 
    DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]];
    dvController.selectedCountry = selectedCountry;
    [self.navigationController pushViewController:dvController animated:YES];
    [dvController release];
    dvController = nil;
    */

    // Navigation logic may go here -- for example, create and push another view controller.
    // AnotherViewController *anotherViewController = [[AnotherViewController alloc] initWithNibName:@"AnotherView" bundle:nil];
    // [self.navigationController pushViewController:anotherViewController animated:YES];
    // [anotherViewController release];
    NSLog(@"Here19");

}

- (void)dealloc {
    //dealloc the array
    [listOfItems release];
    NSLog(@"Here20");

    [super dealloc];
}


@end

該錯誤消息有點神秘,但是它基本上表明您嘗試將消息“ objectForKey:”發送到類“ NSString”的對象,並且該方法在NSString類中不存在。 聽起來您正在以編程方式抓取一個對象,並希望該對象成為NSDictionary。 在運行時,實際上將您的NSDictionary *設置為NSString *,並且在該對象未被正確使用之前,您不會得到任何異常。

熟悉Objective-C后,您可以說“給我這個未知類型的對象,假定它是一個字典,然后調用此函數”,這一事實實際上很酷,但是要習慣它是很困難的。 我一直發現,Objective-C假定您知道自己在做什么。 有些人喜歡它,因為它使他們可以編寫簡潔明了的代碼-但它會大大提高學習難度。

如果您需要更多幫助來跟蹤此代碼段,請隨時發布代碼段!

更新:

看起來當您在viewDidLoad:中設置數據時,您正在從單獨的文件加載一堆數組。 然后將這些數組的內容添加到主數據數組中,如下所示:

[listOfItems addObjectsFromArray:arrayStructuresF];

我認為這些行不應該在那里。 再往下,你要創建的每個字母的字典,然后加入那些到LISTOFITEMS。 在函數末尾,listOfItems包含一堆字符串項目和一堆字典。 字符串項排在第一位,因此當您期望使用NSDictionaries時會得到NSStrings。

PS:您可能希望將其中的一些壓縮成循環。 您可以創建一個由字母A,B,C,D等組成的數組,然后使用使用NSString的stringWithFormat:創建的文件名循環加載所有文件。 只是一個想法!

0x3814530處的對象是NSString,但是您將其視為NSDictionary,但是會遇到運行時異常。

本文介紹了打破異常。 使用調試器檢查與您的異常相鄰的代碼。

嘗試打開NSZombiesEnabled。

  1. 在項目的“可執行文件”組中雙擊您的可執行文件。
  2. 單擊參數選項卡。
  3. 在“要在環境中設置的變量:”部分中,創建一個名為NSZombieEnabled的新變量,並將其設置為YES。

我敢打賭,您會發現您正在向已釋放的對象發送一條消息,以至於該消息已被釋放。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM