文档没有说明这一点.当一个旧物体被"移走"并且一个新物体进入它的位置时,旧物体会发生什么?我必须自己发布吗?
我有一个继承自UIViewController的类.在那里,我想做一些像这样的ivar初始化:
- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle { // Load the view nib
NSLog(@"Hello Earth!");
if (self = [super initWithNibName:nibName bundle:nibBundle]) {
self.visibleIndex = 0;
NSLog(@"Hello Planet!");
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我确实看到了从笔尖加载的内容.但由于另一个原因,永远不会调用此初始化程序.我从来没有收到日志消息.这有什么问题?我肯定有一个笔尖,所以实际上这必须被调用,对吧?
我有一个类,在标题中我定义了这个:
@interface MyViewController : UIViewController {
BOOL blackBackground;
}
@property(nonatomic, assign) BOOL blackBackground;
Run Code Online (Sandbox Code Playgroud)
在实现中,我有@synthesize for blackBackground.
然后,我实例化此对象并执行:
[myViewController setBlackBackground:YES];
Run Code Online (Sandbox Code Playgroud)
既然布尔值应该是值YES(或true;)).但是,我检查:
if ([myViewController blackBackground]) {
NSLog(@"yep, it's true");
}
Run Code Online (Sandbox Code Playgroud)
然而,它似乎没有响应或返回任何东西,要么值没有设置或我不能调用/检查它.知道那里有什么问题吗?
出于某种原因,Xcode告诉我,只要我使用像kCAFillModeForwards这样的东西就找不到符号.必须有一个图书馆或班级,我必须包括......但是哪一个?正常的核心动画的东西工作得很好[myView beginAnimations ...].让更复杂的动画制作工作的诀窍是什么?
我已经包含在.h文件中:
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
@interface TestClass : UIView {
}
// ...
Run Code Online (Sandbox Code Playgroud)
我运行这段代码:
- (void)testAnimation {
CABasicAnimation *fadeInAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
[fadeInAnimation setToValue:[NSNumber numberWithFloat:1.0]];
fadeInAnimation.fillMode = kCAFillModeForwards;
fadeInAnimation.removedOnCompletion = NO;
// other stuff deleted to limit error possibilities...should at least compile
}
Run Code Online (Sandbox Code Playgroud)
这种情况发生在我构建时(确实清理了很多次),2个错误:
cd "/Users/thanks/Desktop/Thanks/iPhone Development/TestApp"
setenv MACOSX_DEPLOYMENT_TARGET 10.5
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.0 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.2.1.sdk "-L/Users/thanks/Desktop/Thanks/iPhone Development/TestApp/build/Debug-iphonesimulator" "-F/Users/thanks/Desktop/Thanks/iPhone Development/TestApp/build/Debug-iphonesimulator" -filelist "/Users/thanks/Desktop/Thanks/iPhone Development/TestApp/build/TestApp.build/Debug-iphonesimulator/TestApp.build/Objects-normal/i386/TestApp.LinkFileList" -mmacosx-version-min=10.5 -framework Foundation -framework UIKit -framework CoreGraphics -o "/Users/thanks/Desktop/Thanks/iPhone Development/TestApp/build/Debug-iphonesimulator/TestApp.app/TestApp"
Undefined symbols: …Run Code Online (Sandbox Code Playgroud) 我在片段中看到过这个:
animation.repeatCount = 1e100f;
Run Code Online (Sandbox Code Playgroud)
我的数学课很久以前.那么1e100f将是一个有100个零的数字?那么在这种情况下,程序员想拥有无限的repeatCount?
我有这个代码.在values数组的末尾,您可以看到我为不透明度提供了0.5.但由于某种原因,当动画停止时,它会再次闪烁,然后使视图完全透明.那有什么不对?
CALayer *layer = self.layer;
CAKeyframeAnimation *blinkAnim = [CAKeyframeAnimation animationWithKeyPath:@"opacity"];
blinkAnim.duration = 1.0;
//blinkAnim.repeatCount = 0;
blinkAnim.autoreverses = NO;
// keyframe times and values
// we want to start fully opaque, fade out, stay faded out and fade back in shortly before the end of the cycle
blinkAnim.keyTimes = [NSArray arrayWithObjects: [NSNumber numberWithFloat:0.0],
[NSNumber numberWithFloat:0.4],
[NSNumber numberWithFloat:0.6],
[NSNumber numberWithFloat:0.85],
[NSNumber numberWithFloat:1.0], nil];
blinkAnim.values = [NSArray arrayWithObjects: [NSNumber numberWithFloat:1.0],
[NSNumber numberWithFloat:1.0],
[NSNumber numberWithFloat:0.0],
[NSNumber numberWithFloat:0.0],
[NSNumber numberWithFloat:0.5], nil];
[layer addAnimation:blinkAnim forKey:nil];
Run Code Online (Sandbox Code Playgroud) 我必须"申请"是什么意思?可以说:"不,我们不喜欢你的鼻子.做别的事!"?他们过去是否这样做过?
我现在已经投资了两个月,价值约20,000美元,用于学习iPhone编程,我还没有应用......
如果用户有iPhone,我想创建一个可以用凸轮拍摄用户照片快照的应用程序.如果他有iPod touch,他可能会选择一个标准的头像,但应用程序应该仍然适用于iPod touch.那可能吗?
或者苹果不允许以编程方式区分"是的,他有iPhone"和"是的,他有iPod touch"吗?
我找不到它.其实我在寻找可以尝试这个的部分:
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO];
self.navigationController.view.bounds = CGRectMake(0,0,320,480);
self.navigationController.navigationBar.hidden = YES;
Run Code Online (Sandbox Code Playgroud)