在方法之间访问NSString会导致应用程序崩溃

时间:2012-08-06 14:51:00

标签: iphone string methods nsstring

如果这是一个糟糕的问题,我很抱歉,因为我是iOS开发的新手。所以这是我的问题:我声明了一个类变量NSString,该字符串从textView分配了一个字符串值但是当我尝试从其他方法访问该字符串时,该应用程序崩溃。这是代码:

接口:(ClassName.h)

@interface ClassName: UIViewController <UITextViewDelegate>{}
@property (nonatomic, assign)NSString *strSomeText;
@end

实施:(ClassName.m)

@implementation
@synthesize strSomeText;
- (void)textViewDidChange:(UITextView *)textView{
    strSomeText = textView.text;
    NSLog(@"%@", strSomeText); //This line works just fine
}
- (void)textViewDidEndEditing:(UITextView *)textView{
    NSLog(@"%@", strSomeText); //this line causes the app to crash
}
@end

感谢您的帮助! 同上。

1 个答案:

答案 0 :(得分:4)

您的问题可能是因为您使用assign作为您的财产。这意味着在您仍然可以引用该字符串时可以取消分配该字符串。请尝试使用copy

@property (nonatomic, copy) NSString *strSomeText;

然后,您应该使用textViewDidChange:方法中的属性访问器:

self.strSomeText = textView.text;