小编Ran*_*cks的帖子

Objective-C中的快速枚举是否保证了迭代的顺序?

我能指望它从数组的开头到结尾的顺序吗?在文档中找不到任何关于此的内容.

即是

for (id val in array)
{
   NSLog(@"%@", val);
}
Run Code Online (Sandbox Code Playgroud)

总是打印出来的

for (int i = 0; i < [array count]; ++i)
{
   NSLog(@"%@", [array objectAtIndex:i]);
}
Run Code Online (Sandbox Code Playgroud)

arrays iteration objective-c fast-enumeration

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

Objective-C中的非成员函数

我想在Objective-C中编写一个独立的函数; 所以基本上是一个C风格的函数,其中有Objective-C调用.例如:

NSString* someFunc()
{
 NSString* str = [[NSString alloc] init];

 return str;
}
Run Code Online (Sandbox Code Playgroud)

我在头文件中声明了该函数,并在其中定义了一个.m文件.但是,该函数似乎没有编译,因为链接器抱怨丢失的符号.我想也许我应该把它放在一个C文件中,但当然它在我身上骂我在BASI写的Objective-C Nonsense ... C.

做什么?

c objective-c

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

对象指针值作为字典的键

我想使用对象的引用值作为字典的键,而不是对象的值的副本.所以,我基本上想要在字典中存储与另一个对象的特定实例相关联的对象,并在以后检索该值.

这可能吗?这完全违背了NSDictionary的想法吗?我可以说我可能正在以错误的方式接近这个,因为字典要我在对象本身上实现NSCopying,这对我正在做的事情来说并没有多大意义.我可以看到我应该做的是包装指针值,但这似乎有点疯狂.

建议将不胜感激.

dictionary reference objective-c

5
推荐指数
2
解决办法
3566
查看次数

我可以提前释放自动释放对象吗?

即如果我这样做会导致对象立即释放而不必由池释放?

[[NSArray arrayWithCapacity:100] release];
Run Code Online (Sandbox Code Playgroud)

在文档中找不到关于此的明确解释.

memory-management objective-c autorelease nsautoreleasepool

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

Objective-C中的对象池

在Objective-C中有一个很好的方法可以做到这一点,还是我必须编写自己的乏味逻辑?

我在iPhone游戏中每帧创建并销毁一些小状态对象.如果我可以只重用池中的对象,那将是很好的.

objective-c object-pooling

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