小编Anh*_* Do的帖子

获取当前界面方向的不同方法?

我知道有三种方法可以获得当前的界面方向:

  • self.interfaceOrientation
  • [[UIApplication sharedApplication] statusBarOrientation]
  • [[UIDevice currentDevice] orientation]

他们之间有什么不同?

orientation ios

63
推荐指数
2
解决办法
3万
查看次数

reloadRowsAtIndexPaths:withRowAnimation:崩溃我的应用程序

我的UITableView出现了一个奇怪的问题:我reloadRowsAtIndexPaths:withRowAnimation:用来重新加载一些特定的行,但应用程序崩溃时出现了一个看似无关的异常:NSInternalInconsistencyException - 尝试删除多于部分中存在的行.

我的代码如下所示:

[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:UITableViewRowAnimationFade];
Run Code Online (Sandbox Code Playgroud)

当我reloadRowsAtIndexPaths:withRowAnimation:用一个简单的替换该消息时reloadData,它完美地工作.

有任何想法吗?

iphone crash uitableview

20
推荐指数
3
解决办法
2万
查看次数

退出Xcode Organizer?

我在Mac上设置了多个开发者帐户,现在需要退出我的帐户才能访问其他人的资源.我无法在任何地方找到这样的选择.

知道如何退出Xcode Organizer吗?

xcode

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

如何手动删除UITableView中的行?

这是我想出的:

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:1]; // my table view has 2 sections
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationTop];
Run Code Online (Sandbox Code Playgroud)

每次我构建和运行时,它都会抛出以下异常:

无效更新:第0节中的行数无效.更新后现有部分中包含的行数必须等于更新前该部分中包含的行数,加上或减去添加或删除的行数那一节.

这有点令人困惑.该部分设置为1,但异常表示它为0.

iphone cocoa-touch objective-c uitableview

17
推荐指数
2
解决办法
3万
查看次数

UINavigationController的后退按钮消失了吗?

我注意到我的一个视图控制器发生了一些奇怪的事情:后退按钮消失了,但是可以通过点击左上角(即按钮所在的位置)返回到上一个视图控制器.

在我的整个文件中,没有将self.navigationItem.hidesBackButton设置为YES的行; 同样,NSLog在viewDidLoad中将self_navigationItem.hidesBackButton的值打印为0.

这在模拟器和真实设备中都会发生.有任何想法吗?

iphone cocoa-touch objective-c

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

editButtonItem设置但没有减号按钮?

我的编辑按钮放在viewDidLoad中:

self.navigationItem.rightBarButtonItem = self.editButtonItem;
Run Code Online (Sandbox Code Playgroud)

它在导航栏上正确显示,点击此按钮确实将其更改为完成.但是,我的表格行中没有显示减号按钮.然后点击一行,然后点击删除工作.

有任何想法吗?

编辑1:这是我正在做的事情:

- (void)loadView {
tableView = [[UITableView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
tableView.delegate = self;
tableView.dataSource = self;
tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

self.view = tableView;
}
Run Code Online (Sandbox Code Playgroud)

编辑2:我的观察是如果我的tableview是在IB(RootViewController)中创建的,编辑和减号按钮显示正常.另外两个(或三个)tableview是由前面的代码创建的,因此可能是问题所在.猜猜我不得不潜入isEditing,编辑和诸如此类的东西.

iphone cocoa-touch objective-c

7
推荐指数
2
解决办法
9058
查看次数

使用KeychainItemWrapper的问题

我使用以下代码从iPhone钥匙串中检索登录凭据:

KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"Test" accessGroup:nil];
NSString *username = [wrapper objectForKey:(id)kSecAttrAccount];
NSString *password = [wrapper objectForKey:(id)kSecValueData];
[wrapper release];
Run Code Online (Sandbox Code Playgroud)

我的第一次用户启动应用程序,无论用户名密码也可以从钥匙串中检索的印象,所以usernamepassword应该等于nil.但是,我无法使用打印出任何这些变量NSLog.

有什么建议?

iphone keychain

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

iphone应用程序崩溃,没有任何控制台错误或崩溃日志:

我是新手.我正在尝试构建一个测验应用程序,而我的应用程序在测验的第一次迭代运行正常,它退出时没有任何控制台错误在第二次运行.修改以下所有代码以供参考.

看起来当我重新运行测验时, - (void)下面的loadNextWord函数确实执行但之后没有任何反应.

请帮忙!

谢谢!

从调试器转储:

我在主函数中的第14行是int retVal = UIApplicationMain(argc,argv,nil,nil);

#import <UIKit/UIKit.h>

 int main(int argc, char *argv[]) {

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}

Program received signal:  “EXC_BAD_ACCESS”.
(gdb)
#0  0x025f0907 in objc_msgSend ()
#1  0x05f28da0 in ?? ()
#2  0x023cfc9d in _CFAutoreleasePoolPop ()
#3  0x0001ee67 in -[NSAutoreleasePool release] ()
#4  0x002cfe7f in _UIApplicationHandleEvent ()
#5  0x02d73822 in PurpleEventCallback ()
#6  0x02474ff4 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()
#7 …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ios4

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

如何提高UIWebView滚动性能?

似乎很难提高UIWebView的性能,特别是对于像Mashable或Ars Technica这样的网站,其中加载了大量脚本并且长篇多页文章很常见.

我知道3个类似的问题,但它们都没有可行的解决方案:

我想知道这个问题是否有任何解决方案.欢迎任何建议.

iphone uiwebview

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

显示UIMenuController时获取所选文本

当用户在UITextView或UIWebView中选择一些文本时,会显示UIMenuController.有没有办法以程序方式访问此选定的文本?

我需要它,因为我想向UIMenuController添加自定义项:'搜索'选项,用于搜索数据库中的选定文本.

是否可以不使用"复制"项目将文本复制到粘贴板,然后下次从UIPasteBoard获取它? - 我对这种解决方法不感兴趣.

iphone uiwebview uimenucontroller

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

[NSURL URLWithString:stringContainingSpecialCharacters]

说,我有一个地址栏,它是一个名为textField的UITextField,以及一个名为webView的UIWebView.大多数情况下,以下代码有效:

[webView loadURL:[NSURL URLWithString:textField.text]];
Run Code Online (Sandbox Code Playgroud)

当我输入一些带有特殊字符的长字符串时,URLWithString:只需返回null.可读性书签是一个很好的例子:

javascript:(function(){readConvertLinksToFootnotes=true;readStyle='style-newspaper';readSize='size-medium';readMargin='margin-wide';_readability_script=document.createElement('script');_readability_script.type='text/javascript';_readability_script.src='http://lab.arc90.com/experiments/readability/js/readability.js?x='+(Math.random());document.documentElement.appendChild(_readability_script);_readability_css=document.createElement('link');_readability_css.rel='stylesheet';_readability_css.href='http://lab.arc90.com/experiments/readability/css/readability.css';_readability_css.type='text/css';_readability_css.media='all';document.documentElement.appendChild(_readability_css);_readability_print_css=document.createElement('link');_readability_print_css.rel='stylesheet';_readability_print_css.href='http://lab.arc90.com/experiments/readability/css/readability-print.css';_readability_print_css.media='print';_readability_print_css.type='text/css';document.getElementsByTagName('head')[0].appendChild(_readability_print_css);})();
Run Code Online (Sandbox Code Playgroud)

根据这个答案,我可以stringByAddingPercentEscapesUsingEncoding用来逃避字符串,事实上它适用于这种情况.

我的问题是:在将字符串传递给webView之前始终调用是否安全stringByAddingPercentEscapesUsingEncoding:?以下是否有任何后果?

[webView loadURL:[NSURL URLWithString:[textField.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]]
Run Code Online (Sandbox Code Playgroud)

谢谢!

编辑:我的意思是'安全'是虽然这适用于包含Unicode字符的网址,但它仍适用于"普通"网址吗?

编辑2:如果这是'安全',为什么它不是默认行为?

iphone nsurl uiwebview

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

如何重新加载父UINavigationController?

我的RootViewController包含一个表视图和一个导航栏.点击一行后,另一个视图控制器被推送到堆栈,即SecondViewController.如果单击"后退"按钮,则会从堆栈中弹出SecondViewController,但父视图控制器的数据已过期.

我怎么能重新加载RootViewController的数据?我的第一次尝试是实施

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
Run Code Online (Sandbox Code Playgroud)

并再次调用viewdidLoad.

问题是,在第一次加载时,viewDidLoad将被调用两次.

iphone cocoa-touch

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

给定一个整数列表,其中一些可能是负数,提取总和为2个最大数的对

O(n2)旁边是否有任何解决方案.我正在考虑循环遍历每个值然后得到总和

java algorithm data-structures

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