这是我的代码.我想在开放的rootviewController上放一个后退按钮.
- (void)selectSurah:(id)sender {
SurahTableViewController * surahTableViewController = [[SurahTableViewController alloc] initWithNibName:@"SurahTableViewController" bundle:nil];
surahTableViewController.navigationItem.title=@"Surah";
surahTableViewController.navigationItem.backBarButtonItem.title=@"Back";
UINavigationController *aNavigationController = [[UINavigationController alloc] initWithRootViewController:surahTableViewController];
[self presentModalViewController:aNavigationController animated:YES];
}
Run Code Online (Sandbox Code Playgroud) 我试图MBProgressHUD在一个应用程序中使用.我将HUD添加到视图中时出错.
这是将进度条添加到视图的代码.
HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view];
[self.view.window addSubview:HUD];
// Set determinate mode
HUD.mode = MBProgressHUDModeAnnularDeterminate;
HUD.labelText = @"Loading";
// myProgressTask uses the HUD instance to update progress
[HUD showWhileExecuting:@selector(processFieldEntries) onTarget:self withObject:nil animated:YES];
Run Code Online (Sandbox Code Playgroud)
应用程序错误:
*** Assertion failure in -[MBProgressHUD initWithView:], /Users/.../MBProgressHUD/MBProgressHUD.m:190
Run Code Online (Sandbox Code Playgroud)
也
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'View must not be nil.'
Run Code Online (Sandbox Code Playgroud)
和
Crash: View must not be nil.
Run Code Online (Sandbox Code Playgroud)
有谁知道断言失败是什么以及如何解决.MBProgressHUD.m文件包含在Build Phases选项卡下的Compile Sources中,并包含在文件中.正在将进展添加到处理现场验证的过程中.
我想要一份关于两者之间比较的详细清单.我所知道的事情:
executeFetchRequest:
performFetch:
fetchedObjects返回一个托管对象数组performFetch初始化该进程.performFetch第二次 如果我错了请纠正我并附上清单.谢谢.
core-data objective-c nsfetchedresultscontroller nsfetchrequest
我看过一些视频/帖子说可以创建'儿童'MOCs - 使用其他MOC作为持久存储的MOC.例如,在您正在线程化应用程序的上下文中,并希望拥有一个可以保存/回滚子线程创建的更改的主MOC时很有用.(根据我的理解,MOC和它的托管对象必须都在同一个线程上使用)
问题是,我如何创建一个儿童MOC?我无法追踪我正在观看的WWDC视频介绍它们,我所看到的一切都在讨论如何使用它们.我可以很容易地分配一个新的MOC,但我该怎么设置它持久存储是另一个MOC?该引用没有显示任何功能!
如何从NSDateFormatter格式中转义字符?
NSDate *currentDate = [NSDate date];
NSDateFormatter *dateFormater = [[NSDateFormatter alloc] init];
[dateFormater setDateFormat:@"dd/MM/yyyy \\a\\t HH:mm"];
NSString *dateFormated = [dateFormater stringFromDate:currentDate];
NSLog(@"%@", dateFormated);
Run Code Online (Sandbox Code Playgroud) 我正在使用新的资产目录AppIcon为iOS 5(理论上),6和7设置正确的图标.不幸的是,当我在iPad 1(使用iOS 5.1.1)上安装应用程序时,显示的图标不是正确的(它从另一个升级,当然是57x57).
我在创建资产目录后看到,在Info.plist文件中添加了2个空条目:
Icon files (iOS 5)CFBundleIcons~ipad我已经阅读了很多"解决方案",但没有任何对我有用:(
其中一个解决方案是在plist中添加这些条目(并在项目中添加相应的图标):
<key>CFBundleIcons</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>Icon.png</string>
<string>Icon@2x.png</string>
<string>Icon-72.png</string>
<string>Icon-72@2x.png</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
</dict>
<key>CFBundleIcons~ipad</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>Icon-Small</string>
<string>Icon-Small-50</string>
<string>Icon-72@2x.png</string>
<string>Icon-72.png</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
</dict>
Run Code Online (Sandbox Code Playgroud)
但它根本不起作用.
我正在使用XCode 5.0(5A1413).
任何帮助将非常感激.
我专注于新的测试飞行程序.我开发了一个应用程序(我通过Xcode提交到iTunes Connect门户),如果点击了UIButton它,它会崩溃.由于该应用程序可用于Beta测试到内部测试人员,我希望在Xcode 6.3 Beta 4 的新Crashes部分中看到崩溃日志(请参阅Crashes Organizer帮助).但没什么.没有可用的崩溃.
这有什么特别的原因吗?这与我正在使用的测试人员类型有关吗?我知道Xcode 6.3是Beta版本.
当我在Xcode 4上导入一个在Xcode 3上启动的项目时,它会在Info.plist文件中为图标添加另一组条目.像这样的东西:

有时候,还有另一个名为"Icon file"(单数形式,而不是复数形式)的条目,单独使用.
是否需要所有这些条目?
另一个问题:为什么启动图像Default.png并Default@2x.png添加到图标部分?
我试图更好地理解操作和线程,并查看AFNetworking的AFURLConnectionOperation子类,例如,真实世界的源代码.
我目前的理解是当实例NSOperation被添加到操作队列时,队列等管理负责执行操作的线程.在苹果公司的文档,NSOperation它指出,即使子类返回YES的-isConcurrent操作将始终在一个单独的线程来启动(为10.6).
基于Apple在线程编程指南和并发编程指南中强大的语言,管理线程似乎最好留给内部实现NSOperationQueue.
但是,AFNetworking的AFURLConnectionOperation子类产生了一个新的NSThread,并且操作-main方法的执行被推送到此网络请求线程.为什么?为什么这个网络请求线程是必要的?这是一种防御性编程技术,因为该库旨在供广大受众使用吗?调试库的消费者是不是更麻烦?在专用线程上进行所有网络活动是否有(微妙的)性能优势?
(
在1月26日添加)在Dave Dribin 的博客文章中,他演示了如何使用NSURLConnection的具体示例将操作移回主线程.
我的好奇心来自Apple的线程编程指南中的以下部分:
保持你的线程合理繁忙.
如果您决定手动创建和管理线程,请记住线程占用宝贵的系统资源.您应该尽力确保为线程分配的任何任务都是合理的长寿和高效的.与此同时,您不应该害怕终止花费大部分时间闲置的线程.线程使用大量内存,其中一些是有线的,因此释放空闲线程不仅有助于减少应用程序的内存占用,还可以释放更多物理内存供其他系统进程使用.
在我看来,AFNetworking的网络请求线程没有"保持相当忙碌"; 它正在运行一个无限的while循环来处理网络I/O. 但是,请注意,这就是问题的关键 - 我不知道,我只是在猜测.
AFURLConnectionOperation对操作,线程(运行循环?)和/或GCD的具体问题的任何洞察或解构都将非常有利于填补我理解的空白.
objective-c nsoperation nsthread nsoperationqueue afnetworking
我知道可以使用障碍解决GCD中的读写器问题.由于我(通常)NSOperationQueue在性能不是关键问题时尝试使用而不是GCD,我想要一个NSOperation兼容此问题的兼容解决方案.
我试着写自己的,但我的解决方案变得笨拙......当然有人已经解决了这个问题吗?
有没有人知道NSOperation兼容读写器问题的解决方案?
concurrency objective-c nsoperation nsoperationqueue grand-central-dispatch
ios ×5
objective-c ×5
xcode ×5
core-data ×2
icons ×2
ios5 ×2
iphone ×2
nsoperation ×2
afnetworking ×1
beta-testing ×1
concurrency ×1
crash ×1
ipad ×1
nsdate ×1
nsthread ×1
testflight ×1
uiview ×1
xcode6 ×1