小编use*_*374的帖子

基本目标-C:为什么这段代码有效?

问题1)

我有一个基于导航的应用程序,点击一个条目打开第二个视图,其中包含该条目的详细信息.

它现在正在使用以下代码

[self.navigationController pushViewController:descriptionController animated:YES];
[self.descriptionController.textView setText:[s description]];  
self.descriptionController.title = [s name];
Run Code Online (Sandbox Code Playgroud)

但是,如果我切换第一个和第三个语句,那么当我第一次单击某个项目时,详细信息视图会显示Lorem Ipsum文本.在第一次之后,它按预期工作.我认为这样做会更正确.为什么它会在第一个视图中显示Lorem Ipsum,但之后没有显示任何内容?

问题2)

此外,我的textView元素是详细信息视图的一部分.在我的控制器类中,我有以下视图:

@property( nonatomic, retain) IBOutlet UITextView *textView;
Run Code Online (Sandbox Code Playgroud)

但是,如果我改变它

@property( nonatomic, copy) IBOutlet UITextView *textView;
Run Code Online (Sandbox Code Playgroud)

然后它崩溃了.我不认为它会崩溃,但我认为它只是创建新的实例,只是占用内存.任何人都能解释一下吗?

iphone cocoa-touch objective-c uiviewcontroller

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

关于Objective-C,Cocoa和Xcode的一些问题

  1. 使用object初始化NSMutableArray数组时,为什么将nil放在最后?

    例如

    NSMutableArray *fruits = [[NSMutableArray alloc] initWithObjects:apple,
                                                                     watemelon,
                                                                     nil];
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在Xcode中,当使用auto complete填写函数变量时.什么是跳转到下一个变量的捷径?

    例如:

    Fruit *fruit3 = [[Song alloc] initWithName:(NSString *)n
                                   description:(NSString *)d    
    
    Run Code Online (Sandbox Code Playgroud)

    我正在输入该initWithName功能并自动完成.所以,我立即按Tab键到达n,完成之后,我怎么去d

  3. 如果我有一个水果数组与水果对象,问题1.水果对象是一个NSObject子类.为什么@property在我的Fruit类的name属性声明中有"copy" .

    当我知道默认情况下,水果对象将驻留在自己的内存空间中.因为我正在创造一个水果指针.Fruit *apple = [[Fruit alloc]....

  4. NSString *a = @"Hello Everyone";

    怎么@""办?

    它是否像这样做:

    [[NSString alloc] initWithValue:"ok"];
    
    Run Code Online (Sandbox Code Playgroud)

xcode cocoa objective-c

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