标签: exc-bad-access

非常简单的Objective-C程序(Snow Leopard)上的EXC_BAD_ACCESS

我正在关注Mac上的Learning Objective-C中最早的一个例子.我的代码几乎与书中的代码完全相同(一些空格和平凡的括号可能不同).它看起来像这样:

#import <Foundation/Foundation.h>

BOOL areIntsDifferent (int thing1, int thing2) {
    if (thing1 == thing2) {
        return NO;
    }
    else {
        return YES;
    }

}

NSString * boolString (BOOL yesNo) {
    if (yesNo == NO) {
        return (@"NO");
    }
    else {
        return (@"YES");
    }
}


int main (int argc, const char * argv[]) {
    BOOL areTheyDifferent;

    areTheyDifferent = areIntsDifferent(5, 5);
    NSLog(@"are %d and %d different? %@", 5, 5, boolString(areTheyDifferent));

    areTheyDifferent = areIntsDifferent(23, 42);
    NSLog(@"are %d and $d different? …
Run Code Online (Sandbox Code Playgroud)

xcode exc-bad-access objective-c osx-snow-leopard

1
推荐指数
1
解决办法
1897
查看次数

Objective-C内存管理问题

我收到一个EXC_BAD_ACCESS错误,这是因为这部分代码.基本上,我接受一个输入并做一些工作.多次输入后,它会抛出错误.我在这里做错了吗?我会发布剩下的代码,但它相当长 - 而且我认为这可能是我的问题所在(至少Xcode指向我的地方).

-(IBAction) findShows: (id) clicked
{  
    char urlChars[1000];
    [self getEventURL: urlChars];
    NSString * theUrl = [[NSString alloc] initWithFormat:@"%s", urlChars];

    NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:theUrl]];
    int theLength = [data length];
    NSString *content = [NSString stringWithUTF8String:[data bytes]];

    char eventData[[data length]];
    strcpy(eventData, [content UTF8String]);
    [self parseEventData: eventData dataLength: theLength];
    [whatIsShowing setStringValue:@"Showing events by this artist"];
}
Run Code Online (Sandbox Code Playgroud)

memory exc-bad-access objective-c

1
推荐指数
1
解决办法
329
查看次数

BAD ACCESS 异常 performSelector:WithObject: 方法

当我从一个实现了我试图调用的方法的对象调用 performSelector:withObject: 时,我得到了一个 EXC_BAD_ACCESS 异常。这是我的代码

SEL newSelector = NSSelectorFromString(@"mySelector:withCustomObject:");
[self performSelector:newSelector withObject:myCustomObject];
Run Code Online (Sandbox Code Playgroud)

这会导致崩溃。但是,当我这样做时

[self performSelector:@selector(mySelector:withCustomObject:) withObject:myCustomObject];
Run Code Online (Sandbox Code Playgroud)

有用。

关于为什么会发生这种情况的任何想法?PS:没有一个参数是nil。

更多代码:

// My code to call this method
SEL newSelector = NSSelectorFromString(@"mySelector:withCustomObject:");
[self performSelector:newSelector withObject:self withObject:myCustomObject];

// this code is NOT called.
- (void) mySelector:(jObject *)sender withCustomObject:(jEvent *)customObject
{
    NSDictionary *handlerData = [aProperty objectAtIndex:[event positionInMethodStack]];
    NSString *newTitle = [handlerData objectForKey:@"newTitle"];
}
Run Code Online (Sandbox Code Playgroud)

iphone exc-bad-access objective-c ios

1
推荐指数
1
解决办法
2610
查看次数

如何设置UIButton的titleLabel.text?

我想知道如何正确地做到这一点,因为我收到了错误访问错误.

在我的应用程序中,我有81 UIButtonsIBAction通过Interface Builder连接到所有这些,这IBAction应该设置用户点击的按钮的文本.我试着这样做:

- (IBAction)changeTitle:(UIButton *)button {
    button.titleLabel.text = [NSString stringWithFormat:@"%@", myString];
}

-(IBAction)setMyString:(id)sender{
myString = [NSString stringWithFormat:@"text"];
}
Run Code Online (Sandbox Code Playgroud)

然而,这会导致错误访问错误,我该如何解决?百万谢谢!

错误消息:EXC_BAD_ACCESS(code = 1,address = 0x0)(lldb)

exc-bad-access objective-c uibutton ios

1
推荐指数
1
解决办法
1万
查看次数

iOS - App崩溃与compelationHandler:nil

嘿所以我得到了经典EXC_BAD_ACCESS (Code = 1, address = 0x10),似乎无法弄清楚为什么.我用以下方法得到错误:

+ (void)logoutWithXId:(NSString *)xId compelationHandler:(void (^)(BOOL))hasSucceeded
{
    NSError *error;

    // create json object for a users session
    NSDictionary *session = [NSDictionary dictionaryWithObjectsAndKeys:
                             xId, @"x_id",
                             nil];

    NSData *jsonSession = [NSJSONSerialization dataWithJSONObject:session options:NSJSONWritingPrettyPrinted error:&error];

    NSString *url = [NSString stringWithFormat:@"%@xsession/logout", potCatURL];

    NSURL *URL = [NSURL URLWithString:url];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL
                                                           cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                       timeoutInterval:30.0];

    NSString *headerValue = [NSString stringWithFormat:@"Token token=%@", APIToken];

    [request setHTTPMethod:@"POST"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [request setValue:headerValue forHTTPHeaderField:@"Authorization"];
    [request setValue:[NSString stringWithFormat:@"%lu", (unsigned …
Run Code Online (Sandbox Code Playgroud)

exc-bad-access objective-c ios

1
推荐指数
1
解决办法
240
查看次数

线程 1:EXC_BAD_ACCESS(代码=1,地址=0x176b)

当我尝试制作一个简单的应用程序时,出现以下错误:

@IBAction func pickButton(sender: UIButton) {
    numberLabel.text = String(format: "The number is %@", randomNumber) Thread 1: EXC_BAD_ACCESS (code=1, address=0x176b)
}
Run Code Online (Sandbox Code Playgroud)

这是完整的代码:

import UIKit

class ViewController2: UIViewController {
    @IBOutlet weak var numberLabel: UILabel!
    @IBOutlet weak var pickButton: UIButton!
    var randomNumber = arc4random_uniform(10000) + 1
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func pickButton(sender: …
Run Code Online (Sandbox Code Playgroud)

exc-bad-access ios swift

1
推荐指数
1
解决办法
2105
查看次数

在@Property上加载首选项时,应用程序崩溃(EXC_BAD_ACCESS)

这是许多EXC_BADACCES问题之一,但我已经做了很长时间的研究,并认为这个问题尚未得到解答.我的应用程序在首选项中保存数据.一切都很好,如果我删除首选项并启动应用程序,那么根本不会发生任何加载.但如果发生加载,就会出现问题.我必须保存一个主数组,其中包含一个名为Box的自写对象.One Box有一个NSString*boxName和六个NSMutableArray*,它们包含另一个自编写的对象,称为Flashcard,它包含两个NSString*:问题和答案.如果AppDelegate获取消息applicationWillTerminate,它将使用NSKeyedArchiver对主数组(称为boxArray)进行编码,并将其保存在首选项中.在AppControll的init方法中,此归档文件是从首选项加载的:

- (id)init {
self = [super init];
if (self) {
    // Initialization code here.
    NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
    NSData* archive = [defaults objectForKey:@"boxArray"];
    if (archive) {
        NSArray* array = [NSKeyedUnarchiver unarchiveObjectWithData:archive];
        boxArray = [NSMutableArray arrayWithArray:array];
    } else {
    boxArray = [[NSMutableArray alloc] init];
    }

}

return self;
Run Code Online (Sandbox Code Playgroud)

}

在Box的encodeWithCoder方法中,它为它的所有数组创建了sereval NSData*对象,就像这样.

NSData* p1archv = [NSKeyedArchiver archivedDataWithRootObject:phase1];  
[aCoder encodeObject:p1archv forKey:@"phase1"];
Run Code Online (Sandbox Code Playgroud)

它加载如下所有内容:NSData*p1archv = [aDecoder decodeObjectForKey:@"phase1"];

if (p1archv) {
        NSArray* a = [NSKeyedUnarchiver unarchiveObjectWithData:p1archv];
        phase1 = [NSMutableArray arrayWithArray:a];
        NSLog(@"loaded phase1: %@",phase1); …
Run Code Online (Sandbox Code Playgroud)

exc-bad-access nsuserdefaults

0
推荐指数
1
解决办法
1535
查看次数

检查NSMutableArray内容

我正在开发一款iPhone应用程序.

我有以下INIT代码:

shapes = [NSMutableArray arrayWithCapacity:numShapes];
Run Code Online (Sandbox Code Playgroud)

之后,我想做以下事情:

- (CGSize) sizeOfShapeType:(ShapeType)type{
    CGSize shapeSize = CGSizeMake(0, 0);
    if (shapes != nil) {
        for(Object2D* obj in shapes)
            if (obj.figure == type) {
                shapeSize = obj.size;
                break;
            }
    }
    return (shapeSize);
}
Run Code Online (Sandbox Code Playgroud)

但我总是得到一个EXEC_BAD_ACCESS,因为形状数组中的所有形状都是null.

如何检查Object2D是否为空?

我在这里得到例外:

for(Object2D* obj in shapes)
Run Code Online (Sandbox Code Playgroud)

exc-bad-access objective-c nsmutablearray

0
推荐指数
1
解决办法
144
查看次数

EXC_BAD_ACCESS内存管理问题

我正在研究iPhone/iPad应用程序,我遇到了一个令人不快的问题.

MyWebViewController一个以a 命名的类

@property (nonatomic, retain) NSString* currentPage;
Run Code Online (Sandbox Code Playgroud)

几种方法:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    ...
    [self method1:self.currentPage];
    ...
}    

- (void)method1:(NSString *)key
{
    ...
    [self method2];
    ...
}
Run Code Online (Sandbox Code Playgroud)

在dubugging [self method2];行中,应用程序崩溃时出现EXC_BAD_ACCESS异常但指向[self method1:self.currentPage];行!

我试图启用NSZombie但它没有帮助.

所以我完全糊涂了,无法做什么.这就是为什么我真的很感谢你的帮助!

exc-bad-access objective-c ios

0
推荐指数
1
解决办法
72
查看次数

为什么这不会崩溃?

为什么循环中的第二行(a.retainCount为1)不会崩溃(由于访问不当)?

NSArray* a0 = @[[NSMutableString stringWithString:@"a"]];    
NSArray * arr = [NSArray arrayWithObject:a0];
[a0 release];[a0 release];

for (NSArray* a in arr)
{
    //NSLog(@"%d", (a == a0) );
    NSLog(@"RC: %d", a.retainCount);
}
Run Code Online (Sandbox Code Playgroud)

但如果循环中的第一行(a == a0 one)未被注释,它就会崩溃.

当自动释放池耗尽时,这肯定会崩溃,但我特意询问循环中的第二行,而不是之后.

有人可以解释一下吗?

crash exc-bad-access objective-c ios

0
推荐指数
1
解决办法
275
查看次数