小编Dou*_*aan的帖子

为什么我不能这样做我的参数?

- (void)setPropertyValue:(const *void)inValue forID:(UInt32)propertyID {

}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,编译器不喜欢const*void.当我这样做时,它说:

error: expected ')' before 'void'
Run Code Online (Sandbox Code Playgroud)

当我创建像(UInt32)foo这样的参数时没有问题.const*void只能在函数中使用吗?

我需要一个参数,它可以是"指向任何东西的指针",如UInt32,Float64等.

objective-c

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

很少有iPhone noob问题

  1. 为什么我应该在方法中将局部变量声明为"静态"?喜欢:static NSString *cellIdentifier = @"Cell"; 它是性能优势吗?(我知道'静态'的作用;在C语境中)

  2. 这个语法是什么意思?[someObj release], someObj = nil; 两个陈述?我为什么要再分配nil?"释放"不够吗?我应该为我分配/拥有的所有对象执行此操作吗?或者只是查看对象?

  3. 为什么每个人都复制NSString,但保留其他对象(在属性声明中)?是的,NSStrings可以更改,但其他对象也可以更改,对吧?那么为什么'复制'只是NSString,而不是所有?这只是一个防守大会吗?

  4. 我不应该释放不断的NSString吗?像这里:NSString *CellIdentifier = @"Cell"; 为什么不呢?编译器是否为我分配/解除分配?

  5. 在一些教程应用程序中,我观察了这些(使用IB构建):属性(IBOutlet,具有相同的ivar名称):window, someLabel, someTextField, etc etc... 在dealloc方法中,虽然windowivar已经发布,但其他人没有.我的问题是:为什么?我不应该发布其他的ivars(标签,textField)吗?为什么不?

  6. 说,我有3个级联下拉列表.我的意思是,根据第一个列表中选择的内容,填充第二个列表,并根据第二个列表中选择的内容,填充第三个列表.哪些UI组件可以最好地反映出来?如何在iPhone UI中显示下拉列表?使用UIPicker的Tableview?我什么时候应该更新第2个,第3个列表?或者只有三个有触摸事件的标签?

  7. 你能给我一些关于Core-Data的好例子教程吗?(不只是简单的数据获取和存储在1/2关系的2/3表)

  8. 我怎么知道我的应用程序是否泄漏内存?有工具吗?

iphone cocoa objective-c

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

如何在不使用导航栏的情况下将控制器从导航堆栈中弹出

我正在尝试使用一些分层视图实现导航控制器.我想使用常规的UIViewController来呈现向下钻取的选项,我不想使用导航栏 - 我想拥有自己的自定义按钮来返回一个级别.

我看到如下例子:

[[self navigationController] pushViewController:nextViewController animated:YES];
Run Code Online (Sandbox Code Playgroud)

我的问题是这些:是navigationController所有UIViewControllers的属性吗?self.navigationController无论堆栈中的视图如何,我都可以参考吗?如果我处于任意视图中,我是否可以使用包含类似内容的按钮操作[self.navigationController popToRootViewController animated:YES];

我提供的每个视图都需要一个按钮来返回上一个视图或根视图,具体取决于具体情况.我想在每个视图控制器中创建该按钮,并控制它返回的堆栈中的哪个视图.我是在正确的轨道上吗?

iphone uinavigationcontroller

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

清除/释放数组数组的正确方法

再次我的数组阵列....

当我有一个包含数组"y"的多个实例的数组"x"时,如何清除/释放它而不会有内存泄漏的风险?

以下是足够的电话吗?

(a)清理阵列

[x removeAllObjects];
Run Code Online (Sandbox Code Playgroud)

(b)释放阵列

[x release];
Run Code Online (Sandbox Code Playgroud)

或者我需要枚举数组,例如:

(c)清理阵列

for(int i=0;i<x.count;i++)
    [[x objectAtIndex:i] release];
    [x removeAllObjects];
Run Code Online (Sandbox Code Playgroud)

(d)释放阵列

for(int i=0;i<x.count;i++)
    [[x objectAtIndex:i] release];
    [x release];
Run Code Online (Sandbox Code Playgroud)

提前致谢

cocoa objective-c

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