我@package在Apple的头文件中看到了很多,但对于我的生活,我找不到描述其含义的权威来源.
像许多其他开发人员一样,我创建了使用a UITabBarController作为根控制器的iPhone项目,使用UINavigationControllers 的选项卡视图可以从列表向下钻取到详细视图.和许多其他开发人员一样,我需要将这些应用程序迁移到iPad,以便他们利用更大的屏幕(更重要的是,不要强迫用户使用仅iPhone应用程序的丑陋"加倍"可视化).
Apple UISplitViewController为这个确切的场景创造了......看似.我说似乎是因为虽然我看到它在设置,iPod,iTunes等中使用,但这些应用程序都没有在UISplitViewController内部使用UITabBarController,因为它不仅记录为不起作用,而且如果这两个被迫进入猎枪婚姻,应用程序可能会崩溃.
考虑所有关于动物的假设iPhone应用程序.它有三个选项卡:"类别"(动物按照一些简单的方法分类 - 也许我们有一个两级层次结构,类似"鸟"和"鱼"),"搜索"(使用标准UITableView和a UISearchDisplayController)和"故事",这是关于动物的故事(也许有一个关于青蛙的故事,另一个关于计算机书呆子马变成了33t的独角兽).
虽然"类别"和"搜索"是可以合并的两个标签,但是不清楚您是否可以或应该将动物列表与动物的故事合并.因此,虽然您可能希望在iPad上使用UISplitViewController(搜索集成在分割的"根",左侧,侧面),您如何呈现"故事"视图?你使用分段控制器吗?上还是下?分裂的"根"或"细节"视图?或者您可能使用"主页"屏幕(如WebMD的iPad应用程序),它显示两个按钮("类别"和"故事"),然后显示用户点击的分割视图?或顶部或底部的工具栏?
我尝试查看其他几个应用程序,包括设置,邮件,iPod,iTunes,联系人,地图等,但它们都没有在一个应用程序中呈现两种"不同"类型的信息.
这里的一般方法是什么?有没有最佳做法?iPad编程社区采用的任何一般模式?
或者,我是否等待并指责Apple以某种方式最终允许UISplitViewController工作而不要求它成为"根"?(那可能永远不会发生!)
所以我正在我的应用程序中构建一个webView,以显示我从UITableView中的选择传递的URL的内容.我知道UIWebView正在正确加载内容,因为如果硬编码将http://www.google.ca写入NSURL然后它加载正常,但是当我从UITableView传递我从RSS反馈解析的URL时它不会正确加载URL.我尝试了调试器,在我尝试解析之前,URL就是nil,但是我可以使用NSLog将它的值打印到控制台.
这是我的UIViewController中有我的UIWebView的代码
#import <UIKit/UIKit.h>
@interface ReadFeedWebViewController : UIViewController
{
NSString *urlToGet;
IBOutlet UIWebView *webView;
}
@property(nonatomic, retain) IBOutlet UIWebView *webView;
@property(nonatomic, retain) NSString *urlToGet;
@end
Run Code Online (Sandbox Code Playgroud)
这是我的实现的viewDidLoad方法的代码...
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"Url inside Web View Controller - %@", urlToGet);
NSURL *url = [NSURL URLWithString:urlToGet];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:requestObj];
}
Run Code Online (Sandbox Code Playgroud)
再一次,我可以将URL打印到NSLog,如果我将URL硬编码到NSURL对象中,那么它将在UIWebView中正常加载.这是我在UITableViewController中设置值的地方......
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
ReadFeedWebViewController *extendedView = [[ReadFeedWebViewController …Run Code Online (Sandbox Code Playgroud) 我相信我的问题涉及指针,这是我经常讨论的一个概念,但这就是我想要做的事情.
我有六个NSArrays.我想要一个由这六个数组组成的额外NSArray,所以:
self.arr1 = [NSArray array];
self.arr2 = [NSArray array];
self.arr3 = [NSArray array];
self.arr4 = [NSArray array];
self.arr5 = [NSArray array];
self.arr6 = [NSArray array];
NSArray *containerArray = [[NSArray alloc] initWithObjects:self.arr1, ... etc, nil];
Run Code Online (Sandbox Code Playgroud)
每当我更新前6个NSArray中的一个时,我希望在containerArray中更新对象.(我知道我使用的是NSArray而不是NSMutableArray,当我更新数组时,我创建了一个新数组并将其分配给实例变量).
目前,对arr1的任何操作都不会反映在[containerArray objectAtIndex:0]中.
给定一组字符串,说:
"Alice"
"Bob"
"C"
"Ca"
"Car"
"Carol"
"Caroling"
"Carousel"
Run Code Online (Sandbox Code Playgroud)
并给出一个字符串,说:
"Carolers"
Run Code Online (Sandbox Code Playgroud)
我想要一个函数,它返回数组中尚未包含的最小前缀.
对于上面的示例,函数应返回:"Caro".(随后的电话将返回"Carole")
我是Ruby的新手,虽然我可能会破解丑陋的东西(使用我的C/C++/Objective-C大脑),但我想学习如何正确(优雅地?)编写代码.
我有一个方法在一个单独的线程上执行循环.由于适用于我的程序的原因,我将此方法称为,
[self performSelectorInBackground:@selector(myMethod:) withObject:arg];
Run Code Online (Sandbox Code Playgroud)
而实际的方法,
- (void)myMethod:(NSString *)arg {
NSAutoreleasePool *pool = [NSAutoreleasePool new];
for (int i = 0; i < [arg length]; i++) {
unichar ch = [arg characterAtIndex:i];
NSLog(@"Processing character %c",ch);
NSString *currentChar = [[NSString alloc] initWithFormat:@"%c", ch];
viewController.outputLabel.text = currentChar;
[currentChar release];
switch (ch) {
//Do my stuff
}
[pool release];
}
Run Code Online (Sandbox Code Playgroud)
现在我的问题是,只有处理过的最后一个字符会显示在我的UILabel中,但是当我在运行程序时检查我的控制台时,正在处理字符时,它们会逐个显示到控制台(使用NSLog) ).这正是我希望在我的标签中看到的行为.
另外我应该告诉你,每次我处理一个字符(在switch语句中)都会有一点延迟,因为我[NSThread sleepForTimeInterval:delayTime];至少要调用几次.
iphone ×3
cocoa ×2
ios ×2
algorithm ×1
cocoa-touch ×1
ipad ×1
migration ×1
nsarray ×1
objective-c ×1
package ×1
pointers ×1
ruby ×1
string ×1
uitableview ×1
uiwebview ×1