小编Sha*_*rog的帖子

Cocoa中的@package编译器指令是什么?

@package在Apple的头文件中看到了很多,但对于我的生活,我找不到描述其含义的权威来源.

cocoa package

2
推荐指数
1
解决办法
405
查看次数

将基于标签栏的iPhone项目迁移到iPad

像许多其他开发人员一样,我创建了使用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工作而不要求它成为"根"?(那可能永远不会发生!)

migration iphone ipad uisplitviewcontroller

2
推荐指数
1
解决办法
893
查看次数

从UITableView传递URL时,UIWebView不加载URL

所以我正在我的应用程序中构建一个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)

iphone objective-c uiwebview uitableview

1
推荐指数
1
解决办法
4541
查看次数

NSArrays中的NSArrays.一个指针问题?

我相信我的问题涉及指针,这是我经常讨论的一个概念,但这就是我想要做的事情.

我有六个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]中.

cocoa pointers nsarray

1
推荐指数
1
解决办法
273
查看次数

确定集合中是否存在前缀

给定一组字符串,说:

"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大脑),但我想学习如何正确(优雅地?)编写代码.

ruby string algorithm

1
推荐指数
1
解决办法
392
查看次数

当我循环播放UILabel时,如何向UILabel显示字符?

我有一个方法在一个单独的线程上执行循环.由于适用于我的程序的原因,我将此方法称为,

[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 cocoa-touch ios

0
推荐指数
1
解决办法
504
查看次数

如何在输入背景时退出应用程序

当我的应用程序进入后台时,我需要退出我的应用程序

ios

-2
推荐指数
1
解决办法
5630
查看次数