在Cocoa的内存管理编程指南中, Apple讨论了顶级对象.他们说,我需要一个奥特莱斯.
但是,如果有任何顶级对象未存储在出口中,则必须保留loadNibNamed:owner:options:方法返回的数组或数组内的对象,以防止这些对象过早释放.
那么他们究竟对"顶级对象"意味着什么呢?我会说他们谈论根视图和窗口.还有什么?这个提示仅适用于我想手动加载其笔尖的情况吗?或者它适用于任何笔尖和任何情况?
当Xcode为我自动填充方法时,它为我提供了参数的蓝色块.我总是进入第一个,然后我点击所有下一个而不是通过键盘命令快速前进.我想有一些好的知道.
我有一个由两个浮点数组成的区间,需要在两个浮点数定义的区间之间的某个区域生成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倍.
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) 我是objective-c的新手,需要扩展一个带有实例变量和访问器的框架的标准类.我听说这是用一个所谓的"类别"完成的,这对我来说听起来很混乱.这基本上如何工作?
我今天偶然发现了这段代码:
CGRect rect = {{0,0},{w,h}};
在这里,我会使用CGRectMake.但是这个东西在漫步的括号中做了什么?这是什么样的特殊语法?我的客观c书都没有提到过.
我正在调用后台线程中的方法:
[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) 我给它0和400,它有时返回400以上的值.这没有意义.
- (float)randomValueBetween:(float)low andValue:(float)high {
return (((float) arc4random() / RAND_MAX) * (high - low)) + low;
}
Run Code Online (Sandbox Code Playgroud)
这实际上是我在网上发现的一个片段.也许有人可以看到那里的错误?
在XCode项目文件夹(我硬盘上的真实文件夹)中,"Classes"文件夹中有一个"Classes-1.moved-aside"文件夹.它包含一些也在"Classes"文件夹中的文件.那个"Classes-1.moved-aside"文件夹有什么意义?
我要求这样的价值:
[self.layer valueForKeyPath:@"transform.rotation.z"]
Run Code Online (Sandbox Code Playgroud)
我需要将它传递给一个以CGFloat为参数的方法.什么是铸造技巧?
iphone ×7
cocoa-touch ×5
objective-c ×4
uikit ×4
xcode ×2
autorelease ×1
casting ×1
core-image ×1
ios ×1
nib ×1
xib ×1