在浏览了初学者的iPhone开发人员书并在线阅读示例代码后,我注意到大多数Objective C程序员几乎合成了每个实例变量.有些变量很方便snythesize,但大多数变量不应该遵循面向对象的封装原则.最糟糕的是标记为私有的合成属性.试图使用其他人的代码的C++程序员将读取头文件中的公共字段和方法.他们将跳过私有变量.这个C++程序员不会知道你打算以某种有意义的方式使用私有属性.
在Apple提供的延迟表图像加载上查看此示例模板:
头
@interface ParseOperation : NSOperation <NSXMLParserDelegate>
{
@private
id <ParseOperationDelegate> delegate;
NSData *dataToParse;
NSMutableArray *workingArray;
AppRecord *workingEntry;
NSMutableString *workingPropertyString;
NSArray *elementsToParse;
BOOL storingCharacterData;
}
Run Code Online (Sandbox Code Playgroud)
资源
@interface ParseOperation ()
@property (nonatomic, assign) id <ParseOperationDelegate> delegate;
@property (nonatomic, retain) NSData *dataToParse;
@property (nonatomic, retain) NSMutableArray *workingArray;
@property (nonatomic, retain) AppRecord *workingEntry;
@property (nonatomic, retain) NSMutableString *workingPropertyString;
@property (nonatomic, retain) NSArray *elementsToParse;
@property (nonatomic, assign) BOOL storingCharacterData;
@end
@implementation ParseOperation
@synthesize delegate, dataToParse, workingArray, workingEntry, workingPropertyString, elementsToParse, storingCharacterData; …Run Code Online (Sandbox Code Playgroud) 我在iOS中使用MPMoviePlayerController.我正在聆听播放视频时可能遇到的任何错误.在我的错误处理程序中,我弹出一个UIAlertView.有时,错误可能会在彼此快速连续中发生,因此会出现多个警报框.为了获得更好的用户体验,如果仍然显示较早的警报,我希望不会弹出另一个警报.
如果我创建一个对象而不将其分配给任何东西,Javascript什么时候会垃圾收集这个对象?这是一个例子:
alert(new Date().getTime());
Run Code Online (Sandbox Code Playgroud)
如果没有这样的垃圾收集,这会导致内存泄漏吗?
for (var i = 0; i < 99999999; i++) {
console.info(new Date().getTime());
}
Run Code Online (Sandbox Code Playgroud) 你如何降低javascript事件轮询的频率?我关注的事件是onResize和onScroll.当有人调整浏览器大小或向下滚动时,这些事件可能会每秒触发几十次.我希望这些事件每500毫秒才会发生一次,所以我不必花费数小时优化我的事件处理程序并确保它们不会泄漏内存.
javascript onresize event-handling javascript-events onscroll
我在Simulator中构建并运行了一个iOS 4.3应用程序.它最初打造了一个iPhone 4外壳.虽然所有真正的iPhone 4都有视网膜显示屏,但这款模拟iPhone 4的分辨率仅为320x480.

我看着Hardware > Device.普通iPhone旁边有一个复选标记.所以我使用的是iPhone 4外壳,但显示正常的iPhone分辨率?我已经困惑了!
然后我切换到iPhone(Retina).奇怪的是,它以相同的320x480分辨率打开iPad.外壳和分辨率都错了!

我怎么能打开和关闭Retina并在正确的外壳中显示它?
Cookie很棒,因为在website.com中写的值可以在www.website.com中使用(www被认为是无www的sudomain).缺点是所有cookie值与每个HTTP请求一起发送到服务器.所以我正在寻找本地可用于Javascript的本地存储机制,它可以跨子域工作,不会传输到服务器.这种机制存在吗?LocalStorage无法跨子域工作,Flash Cookie无法在iPhone上运行.
我用CSS夹紧图像尺寸:
#somewhere img {
width: 160px;
height: 90px;
}
Run Code Online (Sandbox Code Playgroud)
当所有图像正确加载后,我的页面布局看起来很好.另一方面,如果没有加载任何特定图像,我的页面布局会搞砸,因为损坏的图像将占用0px乘以0px.破碎图像周围的元素将向上嘎吱作响.如何使破碎的图像仍然尊重CSS尺寸,以便我的布局不会崩溃?

在UIViewController的文档中,Apple建议在viewWillAppear,viewDidAppear,viewWillDisappear,viewDidDisappear等实现中的某个时刻调用super.例如,关于viewDidDisappear的讨论是:
您可以覆盖此方法以执行与解除或隐藏视图相关的其他任务.如果重写此方法,则必须在实现中的某个时刻调用super.
我的问题是调用super方法时是否重要,如果是,那么调用它的正确时间是什么?超级应该被称为方法的第一行,最后一行,还是中间的某个位置,具体取决于您的特定需求?
我有三个视图控制器:A- > B- > C由导航控制器管理.A是一个瞬态视图控制器.它要求服务器提供一些东西.如果服务器说Everyhing是正常的,那么就A推B送到堆栈.B必须隐藏后退按钮,因为我不希望用户手动返回A.
// B view controller
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationItem.hidesBackButton = YES;
self.title = @"B";
}
Run Code Online (Sandbox Code Playgroud)
B然后C当用户点击表格单元格时,将其推入堆栈.
// B view controller
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
C *c = [[C alloc]
initWithStyle:UITableViewStyleGrouped
];
[self.navigationController
pushViewController:c
animated:YES
];
[c release];
}
Run Code Online (Sandbox Code Playgroud)
.
// C view controller
- (void) viewDidLoad
{
[super viewDidLoad];
self.navigationItem.hidesBackButton = NO;
self.title = @"C"; …Run Code Online (Sandbox Code Playgroud) 当弹出UIAlertViews时,后台会出现晕影效果.也就是说,边缘较暗,中心较浅.

我想知道这个小插图效果是否已经内置于Cocoa Touch中.我想展示我的一个自定义视图背后的插图.
iphone ×5
cocoa-touch ×4
ios ×4
javascript ×3
ipad ×2
objective-c ×2
cookies ×1
css ×1
html ×1
ios4 ×1
onresize ×1
onscroll ×1
oop ×1