在当今世界,许多计算机,移动设备或Web服务共享数据或充当集线器,同步变得更加重要.众所周知,同步的解决方案并不是最舒适的解决方案,最好不要同步.
我仍然很好奇你将如何实现同步解决方案以在多个实体之间进行同步.已经存在许多不同的方法,例如比较更改的日期字段或散列并使用最新数据或让用户在冲突的情况下选择他想要使用的内容.另一种方法是尝试自动合并冲突的数据(在我看来,这并不是那么聪明,因为机器无法猜出用户的意思).
无论如何,在开始实现同步之前,我们应该回答几个与同步有关的问题:
还有很多其他问题,我希望我能够激励你.同步是一个相当普遍的问题.一旦找到了一个好的,多功能的同步方法,它应该更容易应用于具体的应用程序,而不是从头开始思考.我意识到已经有很多应用程序尝试解决(或成功解决)同步,但它们已经相当具体,并且通常不能给出足够的同步方法答案.
我知道关于编码风格的讨论往往以灾难和无尽的火焰战结束,但这不是我想达到的目标.在过去十年中,我主要dealloc在Objective-C中看到了两种不同的编码方式.第一个也是最常见的一个是放在dealloc文件的底部.这也是Apple在Xcode默认模板中使用的样式.这背后的逻辑似乎dealloc是在对象的结尾接近时调用的,因此文件的结尾似乎是一个很好的比喻.
另一方面,有几个人倾向于dealloc直接置于@synthesize指令之下.在我看来,这有两个主要的缺点:
我认为的巨大优势是您可以在属性和相应的release消息之间建立直接的可视连接.
另一件事是弄乱已经发布的变量.虽然我不认为这是必要的,特别是在整个变量在dealloc结束后被解构的对象上下文中,我倾向于也只是变量.我习惯于在函数范围内对变量执行此操作,因此我只是符合我的编码风格.
这就是我的大多数课程的样子:
@implementation Bar
@synthesize foo;
- (void)dealloc
{
[foo release], foo = nil;
[super dealloc];
}
// Initializers and other methods…
Run Code Online (Sandbox Code Playgroud)
我已经提到了一些优点和缺点.对于这个话题你有什么看法?什么是你在使用的编码风格dealloc和为什么?我还忘了提到其他优点和缺点吗?
我不想在这里开始一场火焰战争.我只是想知道你使用什么样的风格,如果你有特定的理由,或者这对你最终无关紧要.
我想在左上角旋转图像,而不是中心.根据文档,我将anchorPoint属性设置为[0,1].视图在我的示例中旋转50°,但在它开始动画之前,视图会跳转到屏幕上的另一个点.
self.shakeTag.layer.anchorPoint = CGPointMake(0.0f, 1.0f);
[UIView beginAnimations:@"rotate" context:nil];
[self.shakeTag.layer setTransform:
CATransform3DRotate(CATransform3DIdentity,
radians(50.0), 0.0f, 0.0f, 1.0f)];
[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)
radians() 定义如下:
static inline double radians (double degrees) {return degrees * M_PI/180;}
Run Code Online (Sandbox Code Playgroud)
当我使用4倍大小并且具有大量透明像素的图像时,我可以在默认锚点[0.5,0.5]处旋转它,但我不想浪费空间用于不可见像素.任何想法如何防止图层在旋转发生之前跳跃?
我们有一个鞋盒式的应用程序,我们希望在Lion中成为一流的公民.这意味着集成自动保存和版本等功能.目前我们没有以文档为中心的模型,我们只使用普通的Core Data堆栈.
UIPersistentDocument提供了一种非常简单的方法来集成自动保存和版本,我看到我们可以选择两个选项来集成新的API:
我听到苹果公司代表对我们应采取的方法提出了矛盾的意见,在开始实施之前澄清事情会很棒.虽然我认为1.不应该使用它也很诱人,因为我们可以免费获得很多东西.我甚至找不到关于在核心数据应用程序中手动实现自动保存和版本的足够文档.
我真的倾向于使用1.但我看到一些问题:
如果我们只想集成iCloud同步,我绝对不会考虑为我们的应用程序使用以文档为中心的模型,因为Core Data直接支持它.如果我们坚持目前的非基于文档的范例,我最担心的是开发人员的开销.
您是否有任何建议或想法如何将鞋盒应用程序集成到新的Lion世界中?
有没有办法立即在AppCode中看到Swift错误?在他们的网站上,他们谈论静态代码分析,但我无处可寻找这种情况立即发生的说法.当您在Xcode中键入一些Swift代码时,通常会立即看到警告,错误等.在AppCode中,我首先必须创建build(?F9),然后浏览Messages Build视图中的列表(在AppCode 2016.01 RC2中更好):
我觉得这很乏味,特别是当你做一些导致语法错误的小错字时.他们可以提前避免.
我正在寻找的是一个可以用自然语言显示时间间隔的Cocoa(或第三方)类,例如:
你知道任何可以帮助我完成这项任务的事情,而不是自己写下来并融入if-else地狱吗?
我在 Eloquent 中有以下模型:组、线程、评论和用户。我想从特定用户中查找特定组中的所有评论。
这是我目前的方法:
$group->threads->each(function ($thread) use ($user_id)
{
$user_comments = $thread->comments->filter(function ($comment) use ($user_id)
{
return $comment->owner_id == $id;
});
});
Run Code Online (Sandbox Code Playgroud)
这看起来很丑陋,可能很慢,我只想摆脱它。在 Eloquent 中获得我的结果集的最快和最优雅的方式是什么?