如何在objective-c中将NSMutableArray转换为NSArray ?
我UIBarButtonItem使用Xcode Storyboards 创建了一个popover (所以没有代码),如下所示:

提出popover工作得很好.但是,当我点击它使它出现时,我无法让popover 消失UIBarButtonItem.
按下按钮(第一次)时会出现弹出窗口.当再次按下该按钮(第二次)时,它上面会出现相同的弹出窗口,所以现在我有两个弹出窗口(如果我继续按下按钮,则会有更多弹出窗口).根据iOS人机界面指南,我需要在第一次点击时显示弹出窗口并在第二次点击时消失:
确保一次只能在屏幕上看到一个弹出窗口.您不应同时显示多个弹出窗口(或设计为外观和行为的自定义视图).特别是,您应该避免同时显示级联或层次结构的弹出窗口,其中一个弹出窗口从另一个弹出窗口出现.
当用户UIBarButtonItem再次点击时,如何解除popover ?
objective-c uibarbuttonitem uipopovercontroller ios uistoryboard
我正在使用NSUserDefaults在我的应用程序中存储一些数据.
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"dummy string" forKey:@"lastValue"];
[prefs synchronize];
Run Code Online (Sandbox Code Playgroud)
出于测试目的,我需要查看系统偏好设备plist文件,其中我的NSUserDefaults数据在Mac上保存.
我知道iOS应用程序用户默认存储的位置,但我不知道mac应用程序.Mac应用程序的NSUserDefaults数据存储在哪里?
我想创建一个如下所示的循环进度条:

我怎么能用Objective-C和Cocoa做到这一点?
我是如何开始这样做的是创建一个UIView并编辑drawRect,但我有点迷失.任何帮助将不胜感激.
谢谢!
我打电话MFMailComposeViewController给UITableViewController.问题是当我在"邮件撰写"窗口中选择" 取消"或" 发送"按钮时,从不调用委托方法:
mailComposeController:(MFMailComposeViewController*)controllerdidFinishWithResult
Run Code Online (Sandbox Code Playgroud)
这是表视图类:
@implementation DetailsTableViewController
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section==0 && indexPath.row==4) {
//SEND MAIL
MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
if ([MFMailComposeViewController canSendMail]) {
[controller setSubject:[NSString stringWithFormat:@"Ref %@",[item objectForKey:@"reference"]]];
[controller setMessageBody:@" " isHTML:NO];
[controller setToRecipients:[NSArray arrayWithObject:[item objectForKey:@"email"]]];
[self presentModalViewController:controller animated:YES];
}
[controller release];
}
}
- (void)mailComposeController:(MFMailComposeViewController*)controllerdidFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
// NEVER REACHES THIS PLACE
[self dismissModalViewControllerAnimated:YES];
NSLog (@"mail finished");
}
Run Code Online (Sandbox Code Playgroud)
应用程序不会崩溃.按下"取消"或"发送"按钮后,"构建窗口"将停留在屏幕上并禁用按钮.我可以按Home键退出应用程序.
我可以打开TableView的其他模态视图,但不能打开MailCompose.
我正在使用URLSession来执行数据任务,当我在iOS 11上运行它时,我收到一个控制台错误:
HTTP load failed (error code: -999 [1:89]) for Task <68809C58-C6A7-4F10-86A4-81396D8B18CF>.<2>
Run Code Online (Sandbox Code Playgroud)
有什么想法导致它,或如何解决它?
注意:此问题最初是在Apple在iOS SDK中引入运动检测硬件和相关API之前发布的.然而,这个问题的答案仍然有用.
我正在创建一个iPhone iOS应用程序,它涉及跟踪用户的跑步和/或步行.用户跑步和走路的记录结果保持诚实非常重要.我需要一种方法来捕捉可能在使用汽车时作弊(或意外地离开跟踪器)的用户.
要检查如果用户驾驶或乘坐一辆车我首先想到这两项检查,但也不能真正确定该用户是在汽车或没有(一个点).
使用以下方法检查用户的当前速度.如果用户的行进速度超过20-ahh MPH,那么我可以假设用户在车内:
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
CLLocation *recentLocation = [locations lastObject];
recentLocation.speed; //If speed is over 20 MPH, assume the user is not on their feet.
Run Code Online (Sandbox Code Playgroud)
但是,我不确定这是否真的是一个很好的检查,因为人们的记录比以前更快.这是一个很好的检查还是我应该使用其他东西?
使用Core Motion Framework提供的Accelerometer和Motion API确定用户加速的速度.如果用户加速超过一定的速率,那么我可以假设用户正在车辆中行驶.
这些假设是否正确?我想我真正的问题是:有没有更好的方法来检测用户是否在车内移动 - 如果是这样的话?.如果没有,那么这些检查是否适用于这种情况,或者这对那些实际上那么快的用户来说是否会烦恼?CoreMotion是适当的API吗?
编辑:新的iPhone 5S M7协处理器提供更准确的运动检测.任何人都可以解释如何使用新的M7 API吗?
我想通过从图像选择器中选择一个文件(图像)作为附件.我可以在iOS Objective-C中附加和邮寄文件(特别是图像)的适当方式是什么?
我刚刚意识到我的iOS应用程序的值中的Bundle Creator操作系统类型代码Info.plist是?????在Xcode 4中.应该是什么值?
我有一个Data类型的变量fileData,我很难找到如何打印这个的大小.
在过去的NSData中,您将打印长度,但无法使用此类型执行此操作.
如何在Swift 3.0中打印数据的大小?
ios ×7
objective-c ×7
cocoa-touch ×4
cocoa ×2
plist ×2
swift ×2
apple-m7 ×1
core-motion ×1
info.plist ×1
ios11 ×1
ios4 ×1
ios5 ×1
ios6 ×1
macos ×1
mfmailcomposeviewcontroller ×1
nsarray ×1
nsdata ×1
swift3 ×1
uistoryboard ×1
urlsession ×1
xcode ×1
xcode4 ×1