我在NSFetchedResultsController和iOS 5中提供的新NSOrderedSet关系中遇到了一个问题(理解问题).
我有以下数据模型(好吧,我的真实的不是抽屉和袜子!)但这只是一个简单的例子:

Drawer和Sock都是Core Data模型/商店中的NSManagedObjects.上Drawer的socks关系是一个有序的一对多关系Sock.想法是袜子按特定顺序放在抽屉里.上Sock的drawer关系是逆socks关系.
在UIViewController中,我正在基于这些实体绘制UITableView.我正在用桌子喂餐桌NSFetchedResultsController.
- (NSFetchedResultsController *)fetchedResultsController1 {
if (_fetchedResultsController1 != nil) {
return _fetchedResultsController1;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Sock" inManagedObjectContext:[NSManagedObjectContext MR_defaultContext]];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"drawer.socks" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
self.fetchedResultsController1 = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:[NSManagedObjectContext MR_defaultContext] sectionNameKeyPath:nil cacheName:@"SocksCache"];
self.fetchedResultsController1.delegate = self;
return _fetchedResultsController1;
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到以下错误: *** Terminating app due to …
我目前非常简单地使用UICollectionViewFlowLayout:
UICollectionViewFlowLayout *flowLayout = [UICollectionViewFlowLayout alloc] init];
flowLayout.itemSize = CGSizeMake(75, 75);
flowLayout.minimumInteritemSpacing = 2;
flowLayout.minimumLineSpacing = 2;
_collectionView.collectionViewLayout = flowLayout;
Run Code Online (Sandbox Code Playgroud)
我有多个部分(来自不同来源的单元格),但是,我想以连续的方式渲染网格.因此,各部分之间不会有明显的中断.
请参阅屏幕截图,为了开发目的,我将在两个部分中呈现相同的单元格.
任何想法,我如何获得流程布局允许多个部分,但没有休息时间?

在我的应用程序(代码非常类似于Apple的WWDC10的PhotoScroller演示)中,我有一个UIScrollView.在滚动视图中,我用以下代码覆盖了layoutSubviews:
- (void) layoutSubviews {
[super layoutSubviews];
// center the image as it becomes smaller than the size of the screen
CGSize boundsSize = self.bounds.size;
...
}
Run Code Online (Sandbox Code Playgroud)
在iOS 4.x中,如果应用程序在横向模式下启动(用户将其保持为横向),则layoutSubviews将被调用两次(非常快).第一次调用它时,boundsSize具有指示其纵向的尺寸,但之后立即再次调用它,self.bounds.size返回指示设备处于landsacpe并且我的布局计算正常工作的尺寸.
在iOS 5.x中,layoutSubviews仅调用一次,其中bounds.size返回指示纵向的尺寸,并且它没有得到第二次调用,因此我的所有计算代码都搞砸了.
如果用户physcially旋转设备,然后layoutSubviews被调用和正常工作 - 这样用户就开始横向应用(平不正确地),旋转为纵向(平correcty),然后转回到风景(现提请正确).
它是我缺少的layoutSubviews的第二次"自动"调用.
有人注意到这个或有什么建议吗?
更新:
我确实在iOS 5的UIKit发行说明中找到了这个,但我不确定它是否相关,甚至是这种变化的影响.
iOS 5中的旋转回调不适用于通过全屏显示的视图控制器.这意味着,如果你的代码呈现了另一个视图控制器视图控制器,然后用户随后旋转设备,以不同的取向,在解雇,底层控制器(即呈现控制器)将不会收到任何旋转回调.但请注意,呈现控制器将获得aviewWillLayoutSubviews来电时它被重新显示,并且interfaceOrientation属性可以从这种方法进行查询和使用正确铺陈控制器.
进一步更新:
使用[UIView recursiveDescription],转储视图层次结构,我得到以下输出:
iOS 4(运行正常):
肖像:
2011-12-19 15:57:06.400 stroom[10889:11603] <0x5e7f9b0 stroomViewController.m:(402)> <UIView: 0x6a6f2f0; frame = (0 0; 768 1024); autoresize = W+H; layer = <CALayer: 0x6a659d0>>
| <UIScrollView: 0x5e911e0; frame = (-20 0; 808 1024); clipsToBounds = …Run Code Online (Sandbox Code Playgroud) 我正在使用play框架中的"Secure"模块,它的工作效果非常好.我可以通过在我的应用程序中发布/ login路由来登录用户.
然而,当我"创建/注册"的新用户,我想为用户用户创建后,将自动登录.这个,我似乎无法以编程方式工作,即不必发布表单登录.
我当前用户创建操作的代码如下:
public static void create(@Required @Email String email, @Required String password, @Required @Equals("password") String passwordConfirmation) {
User user = new User(email);
user.password = new Crypto().encryptAES(password);
user.save();
try {
Secure.authenticate(email, password, false); // <== this is the action in secure module mapped to /login
} catch(Throwable t) {
t.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
所以我手动调用Secure.authentication(username, password, remember)方法,但这只是将我重定向到登录页面而不是我的目标页面.
我有一种感觉,因为我直接调用Secure.authenticate而不是通过请求/响应,所以没有设置cookie或其他东西,但我只是不确定.
有任何想法吗?
我想将原始HTTP请求/响应抽出到控制台以帮助调试.
我查看了GitHub上的各种文档并快速搜索了代码并找不到任何明显的内容,所以我猜测答案是否定的.但只是想检查一下我是否遗漏了任何明显的东西.
我正在使用iCloud Key Value存储的OSX 10.8应用程序.它并没有使用文件存储.
我想确定iCloud Key Value商店是否可供用户使用.
我试图像使用云一样:
+ (BOOL)isCloudAvailable {
id currentCloudToken = [NSFileManager defaultManager] ubiquityIdentityToken];
return (currentCloudToken) ? YES : NO;
}
Run Code Online (Sandbox Code Playgroud)
但是,ubiquityIdentityToken即使用户登录到iCloud ,调用始终返回nil.
如果我配置Ubiquity容器以及键值存储,那么该调用确实有效.
但是,我刚刚让我的应用程序被Apple评论拒绝,表明我需要"文档和数据存储"而不需要在应用程序中使用它.我只是用它来确定iCloud是否可用.
无论如何要确定用户是否可以单独使用iCloud键值存储?
呼唤reset我的NSManagedObjectContext东西时,我收到了内存不足的警告,我应该考虑做什么?将任何指针NSManagedObject闲置在一起会有点困难,但是如果它做对了,我会处理它!
或者核心数据库是否会将NSManagedObject对象故障以减少其实时内存大小?
我应该提一下,这个上下文是在App Delegate中创建的,因此通常适用于整个应用程序生命周期.我在后台线程中也有上下文,但是当线程结束时它们会被dealloc'd().
我知道这是一般性问题,但我对你的意见感兴趣:
有人在那里只定义.m文件中的所有内容吗?
顺便说一下>并不是说我打算不使用.h文件,只是想了解它背后的想法!
我想在最近引入iOS 4.3的UIViewController上使用disablesAutomaticKeyboardDismissal属性.
如何处理/检查早期版本的iOS运行我的应用程序并且此属性不可用的情况?
如果它是一个选择器,我会使用respondsToSelector:@selector(某事),但我不知道如何为一个属性做什么.
谢谢大家!
我有一个属性定义为:
@property(nonatomic, retain) UITableView *settingsTableView;
Run Code Online (Sandbox Code Playgroud)
然后在我的viewDidLoad方法中我有:
self.settingsTableView = [[[UITableView alloc] initWithFrame:tableFrame style:UITableViewStyleGrouped] autorelease];
[self.view addSubview:self.settingsTableView];
[self.settingsTableView release];
Run Code Online (Sandbox Code Playgroud)
然后在视图控制器的dealloc方法中我有:
[settingsTableView release];
Run Code Online (Sandbox Code Playgroud)
当我尝试从dealloc中释放时,我收到一条"消息发送到deallocated instance".我开始猜测自己,有人看到我做过什么愚蠢的事吗?
真的很感激这一个的帮助!
objective-c ×9
ios ×6
iphone ×5
core-data ×2
ios5 ×2
afnetworking ×1
cocoa ×1
icloud ×1
ipad ×1
java ×1
macos ×1
uikit ×1
uiscrollview ×1