有没有办法打印出当前正在执行当前方法的线程ID?
(Objective-c please)
自升级到最新的Xcode 3.2.1和Snow Leopard以来,我一直在收到警告
"格式不是字符串文字,没有格式参数"
来自以下代码:
NSError *error = nil;
if (![self.managedObjectContext save:&error])
{
NSLog([NSString stringWithFormat:@"%@ %@, %@",
errorMsgFormat,
error,
[error userInfo]]);
}
Run Code Online (Sandbox Code Playgroud)
如果errorMsgFormat是NSString格式说明符(例如"print me like this: %@":),上面的NSLog调用有什么问题?什么是修复它的建议方法,以便不生成警告?
我需要GET HTTP request用Basic 调用一个初始化Authentication.这将是第一次将请求发送到服务器并且我已经拥有了username & password这样的服务,因此不需要服务器进行授权的质询.
第一个问题:
是否NSURLConnection必须设置为同步才能执行Basic Auth?根据这篇文章的答案,如果你选择异步路由,似乎你不能做Basic Auth.
任何人都知道任何一些示例代码,说明了基本GET request身份验证,而无需质询响应?Apple的文档显示了一个示例,但仅在服务器向客户端发出质询请求之后.
我是SDK的新网络部分,我不确定我应该使用哪个其他类来实现这个功能.(我看到了NSURLCredential类,但它似乎只NSURLAuthenticationChallenge在客户端请求来自服务器的授权资源之后才使用它).
我在MyCustomUIView类中有一个UITextField,当UITextField失去焦点时,我想隐藏该字段并显示其他内容.
该代表UITextField被设置为MyCustomUIView通过IB,我也有'已结束退出'和'编辑已结束'事件指向其中的IBAction方法MyCustomUIView.
@interface MyCustomUIView : UIView {
IBOutlet UITextField *myTextField;
}
-(IBAction)textFieldLostFocus:(UITextField *)textField;
@end
Run Code Online (Sandbox Code Playgroud)
但是,当UITextField失去焦点时,这些事件似乎都没有被触发.你如何陷阱/寻找这个事件?
设置的代理UITextField是MyCustomUIView这样的,我收到textFieldShouldReturn消息,完成后关闭键盘.
但我感兴趣的还在于确定用户何时按下屏幕上的其他区域(比如另一个控件或只是空白区域)并且文本字段失去焦点.
我希望能够为我的项目中的所有类添加当前类名和方法名的跟踪消息.
有没有办法在运行时获取当前方法的名称,类似于:
NSLog(@"classname: %@", [self className]);
Run Code Online (Sandbox Code Playgroud)
self是从NSObject派生的类?
我有一个启动一个UIViewController一个UITableViewController,每当后退按钮在子控制器,这是从"的UIViewController"派生类按我想的陷阱.我可以更改后退按钮标题,但设置backBarButtonItem时设置目标和操作值似乎被忽略.有什么方法可以接收点按"后退"按钮的某种通知?
- (void)showDetailView
{
// How I'm creating & showing the detail controller
MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyDetailView" bundle:nil];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Pages"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(handleBack:)];
self.navigationItem.backBarButtonItem = backButton;
[backButton release];
[self.navigationController pushViewController:controller animated:animated];
[controller release];
}
- (void)handleBack:(id)sender
{
// not reaching here
NSLog(@"handleBack event reached");
}
Run Code Online (Sandbox Code Playgroud) 我想使用NSOperationQueue设置一个序列化的任务队列,但我对文档中讨论的术语有点困惑.
在NSOperation对象的上下文中,术语并发和非并发不一定是指线程的并行执行.相反,非并发操作是使用为其提供的环境执行的操作,而并发操作负责设置其自己的执行环境.
设置"自己的执行环境"意味着什么?
我的NSOperation派生任务需要按照它们添加到队列的顺序执行.
所以我认为这意味着"非并发"操作,因此我为需要完成的工作实现'main',并为'isConcurrent'返回NO.此外,NSOperationQueue的'setMaxConcurrentOperationCount'将设置为1.
我没有在这些任务之间设置NSOperation依赖性的原因是因为它们插入队列的顺序是它们应该完成的顺序.
这些假设是否正确?
典型的UITableView使用模式是让主UIViewController成为它所持有的UITableView的目标数据源和委托.
是否有任何简单易懂的教程可以帮助我弄清楚如何将与UITableViewDelegate和UITableViewDataSource方法相关的代码移动到一个单独的类中并将其挂钩到我的UIViewController?理想情况下,我希望将委托和数据源都放在同一个类中.
现在,我通过Interface Builder创建UITableView并将其插座连接到我的控制器类.
典型代码:
@interface MyController : UIViewController <UITableViewDelegate, UITableViewDataSource>
{
IBOutlet UITableview *myTableview;
}
Run Code Online (Sandbox Code Playgroud)
我想做更像这样的事情:
@interface MyController : UIViewController
{
IBOutlet UITableview *myTableview;
}
@end
@interface MyTableSourceDelegate : NSObject<UITableViewDelegate, UITableViewDataSource>
{
}
@implementation MyTableSourceDelegate
// implement all of the UITableViewDelegate and methods in this class
@end
Run Code Online (Sandbox Code Playgroud) 我是公司在ADC上的iPhone程序的团队管理员(但不是团队代理).作为独立人员的团队代理可以向我提供我可以与XCode一起使用以创建临时构建的分发配置文件文件的副本吗?
这是因为团队代理人不是技术人员,但他们是注册该计划的人.
当我将分发配置文件添加到我的XCode组织时,我看到配置文件的错误:
在您的钥匙串中找不到与此配置文件匹配的有效签名身份
我安装了自己的开发证书(developer_identity.cer)以及安装在我的KeyChain管理器上的AppleWWDRCA.cer.
我们是否必须更改团队代理的人员,以便我的证书与分发配置文件一起使用以使临时构建发生?
我想显示从最顶部状态栏下方滑动的操作表.
当我使用navigationBar作为要显示的视图时,工作表仍然显示在屏幕的底部.我怎样才能显示它来自顶部呢?
我正在调用以下代码的类是'UIViewController'
UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"Hello" delegate:nil
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
UINavigationBar *navBar = self.navigationController.navigationBar;
[sheet showInView:navBar];
Run Code Online (Sandbox Code Playgroud)
我已经看到一些应用程序显示了状态栏所在的某种抽屉式抽屉.(例如:Twitterrific)这是怎么做到的?
iphone ×7
objective-c ×7
ios ×3
cocoa ×2
cocoa-touch ×1
nslog ×1
uitextfield ×1
warnings ×1
xcode ×1