小编Tha*_*nks的帖子

Apple在内存管理编程指南中谈到了哪些"顶级对象"?

Cocoa内存管理编程指南中, Apple讨论了顶级对象.他们说,我需要一个奥特莱斯.

但是,如果有任何顶级对象未存储在出口中,则必须保留loadNibNamed:owner:options:方法返回的数组或数组内的对象,以防止这些对象过早释放.

那么他们究竟对"顶级对象"意味着什么呢?我会说他们谈论根视图和窗口.还有什么?这个提示仅适用于我想手动加载其笔尖的情况吗?或者它适用于任何笔尖和任何情况?

iphone xib uikit nib

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

如何在Xcode自动完成中从一个占位符跳转到另一个占位符?

当Xcode为我自动填充方法时,它为我提供了参数的蓝色块.我总是进入第一个,然后我点击所有下一个而不是通过键盘命令快速前进.我想有一些好的知道.

xcode

6
推荐指数
2
解决办法
1976
查看次数

在floatA和floatB之间获取随机浮点数的最佳方法是什么?

我有一个由两个浮点数组成的区间,需要在两个浮点数定义的区间之间的某个区域生成20个随机数.

让我们说,例如:

float a = 12.49953f
float b = 39.11234f
float r = //best way to get best randomly numbers between a and b
Run Code Online (Sandbox Code Playgroud)

随机数可以是== a和== b.你会建议什么?我知道所有计算机和语言都存在随机数问题,并且有很多方法可以生成它们.但我没有目标c的经验.

非常重要的是,在循环中生成的20个数字的一​​个块中生成的数字不相同.我想为此我会创建一个方法,将数字放在一个数组中,并检查生成的数字是否与数组中的所有其他数字不同,如果不是,我会生成另一个.

我试过这个:

CGFloat r = 1 + arc4random()%5;

但这只会产生整数,大部分时间我会得到相同随机数的2倍.

iphone cocoa-touch objective-c

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

如何在iPhone OS中使用CIFilter?

Apple表示CIFilter可在iPhone OS中使用.但是,在我的Mac上,我找不到要链接的CoreImage框架.

filter(过滤器)提供转换的可选Core Image过滤器对象.

@property(保留)CIFilter*过滤器

即当我尝试做这样的事情时,它崩溃了,因为CIFilter是未知的:

[transition setFilter:[CIFilter filterWithName:@"CIShapedWaterRipple"]];
Run Code Online (Sandbox Code Playgroud)

我联系到:

#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
#import <CoreGraphics/CoreGraphics.h>
Run Code Online (Sandbox Code Playgroud)

cocoa-touch core-image uikit ios

6
推荐指数
2
解决办法
6588
查看次数

一个类别如何运作?

我是objective-c的新手,需要扩展一个带有实例变量和访问器的框架的标准类.我听说这是用一个所谓的"类别"完成的,这对我来说听起来很混乱.这基本上如何工作?

objective-c

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

这{{0,0},{w,h}}在做什么?

我今天偶然发现了这段代码:

CGRect rect = {{0,0},{w,h}};

在这里,我会使用CGRectMake.但是这个东西在漫步的括号中做了什么?这是什么样的特殊语法?我的客观c书都没有提到过.

iphone cocoa-touch objective-c

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

为什么在执行performSelectorInBackground时没有自动释放池:?

我正在调用后台线程中的方法:

[self performSelectorInBackground:@selector(loadViewControllerWithIndex:) withObject:[NSNumber numberWithInt:viewControllerIndex]];
Run Code Online (Sandbox Code Playgroud)

然后,我有这个方法实现,由选择器调用:

- (void) loadViewControllerWithIndex:(NSNumber *)indexNumberObj {
    NSAutoreleasePool *arPool = [[NSAutoreleasePool alloc] init];
    NSInteger vcIndex = [indexNumberObj intValue];

    Class c;
    UIViewController *controller = [viewControllers objectAtIndex:vcIndex];

    switch (vcIndex) {
        case 0:
            c = [MyFirstViewController class];
            break;
        case 1:
            c = [MySecondViewController class];
            break;
        default:
            NSLog(@"unknown index for loading view controller: %d", vcIndex); // error
            break;
    }

    if ((NSNull *)controller == [NSNull null]) {
        controller = [[c alloc] initWithNib];
        [viewControllers replaceObjectAtIndex:vcIndex withObject:controller];
        [controller release];
    }

    if (controller.view.superview == …
Run Code Online (Sandbox Code Playgroud)

iphone multithreading cocoa-touch autorelease uikit

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

这个随机函数有什么问题?

我给它0和400,它有时返回400以上的值.这没有意义.

- (float)randomValueBetween:(float)low andValue:(float)high {
    return (((float) arc4random() / RAND_MAX) * (high - low)) + low;
}
Run Code Online (Sandbox Code Playgroud)

这实际上是我在网上发现的一个片段.也许有人可以看到那里的错误?

iphone cocoa-touch objective-c uikit

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

什么是我的Classes目录中的"Classes-1.moved-aside"目录?

在XCode项目文件夹(我硬盘上的真实文件夹)中,"Classes"文件夹中有一个"Classes-1.moved-aside"文件夹.它包含一些也在"Classes"文件夹中的文件.那个"Classes-1.moved-aside"文件夹有什么意义?

iphone xcode

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

如何将此值作为CGFloat获取?

我要求这样的价值:

[self.layer valueForKeyPath:@"transform.rotation.z"]
Run Code Online (Sandbox Code Playgroud)

我需要将它传递给一个以CGFloat为参数的方法.什么是铸造技巧?

iphone casting

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