
这是我打算在屏幕上显示的自定义标签栏.但是,我的合作伙伴希望文本略微提升.我怎么能这样做?
为什么不回来NSDate*?
它应该是一个创造功能吗?所有创建函数都返回类型为创建它的类的类.
现在,我做不到NSDate.date.timeIntervalSince1970:(
我认为编译器足够聪明,知道NSDate.date返回NSDate,即使返回类型是id?
有时候我不想做任何事情.
我只是想发表一个声明,这样我才能提出突破点.
在c和objective-c中我们有while(false);
说我想打破一个功能
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
self.navigationItem.leftBarButtonItem=nil;
self.navigationItem.rightBarButtonItem=nil;
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(updateDisplays) name: NotificationUpdateArroworLocation object:nil];
PO(self.tableView.indexPathForSelectedRow);
while(false);//I put break point here so program stop here.
}
Run Code Online (Sandbox Code Playgroud)
在.net中我们没有什么(不确定我是否做到了?).
我们应该在PhP中使用什么?
可能重复:
objective-c中的受保护方法
声明私有属性的方法很简单.
您声明在.m文件中声明的扩展名中.
假设我想声明受保护的属性并从类和子类访问它.
这是我试过的:
//
// BGGoogleMap+protected.h
//
//
#import "BGGoogleMap.h"
@interface BGGoogleMap ()
@property (strong,nonatomic) NSString * protectedHello;
@end
Run Code Online (Sandbox Code Playgroud)
那是编译.然后我补充说:
#import "BGGoogleMap+protected.h"
@implementation BGGoogleMap ()
-(NSString *) protectedHello
{
return _
}
@end
Run Code Online (Sandbox Code Playgroud)
问题开始了.我似乎无法在原始的.m文件之外实现类扩展.Xcode将要求该括号内的东西.
如果我做
#import "BGGoogleMap+protected.h"
@implementation BGGoogleMap (protected)
-(NSString *) protectedHello
{
return _
}
@end
Run Code Online (Sandbox Code Playgroud)
我无法访问BGGoogleMap + protected.h中声明的_protectedHello的ivar
当然我可以使用常规类别而不是扩展名,但这意味着我不能拥有受保护的属性.
所以我该怎么做?
例如,如果viewController的视图在viewHierarchy中,我刚刚下载完东西,我想快速更新内容.如果self.view不在viewHierarchy中,我想推迟更新.
我想,我可以添加一个布尔变量来表示并将其放在viewWillAppear和viewWillDisappear上.
我也可以扫描窗口,看看UIView是否在viewHierarchy中.
有更简单的方法吗?
使用predicateWithFormat,%@被""包围.我们需要使用%K作为密钥.
例如[NSPredicate predicateWithFormat @"%@ == %@" ,@"someKey",@"someValue"]变成
"someKey" == "someValue"
Run Code Online (Sandbox Code Playgroud)
在stringWithFormat时,%@不被""包围
[NSString stringWithFormat @"%@ == %@" ,@"someKey",@"someValue"]
Run Code Online (Sandbox Code Playgroud)
变 someKey == someValue
为什么不同?
我错过了什么吗?
为什么在predicateWithFormat中使用%@作为"Value",因为它不是string @WithFormat中%@的含义.为什么不创建一个新的表示法,比如说%V来获得"Value"而%@保持值就像在stringWithFormat中一样.
为什么Apple决定使用相同的符号,即%@应该有不同的含义.
他们真的不一样吧?我错过了什么吗?
#define CLog( s, ... ) NSLog( @"%@", [NSString stringWithFormat:(s), ##__VA_ARGS__] )
#define PO(x) CLog(@#x ": %@", x)
Run Code Online (Sandbox Code Playgroud)
然后我做:
NSString * hello =[NSString stringWithFormat:@"%@, %@",theCatalogData.id,@(theCatalogData.images.count)];
PO(hello);
Run Code Online (Sandbox Code Playgroud)
作品
当然,缩短版本只是:
PO([NSString stringWithFormat:@"%@, %@",theCatalogData.id,@(theCatalogData.images.count)]);
Run Code Online (Sandbox Code Playgroud)
这不起作用.我想知道为什么.
没有紧急情况 没问题.无论如何,等效的时间更长.我只是想了解编译器如何解析宏以查看为什么事情不起作用.
通常当用户在UITableView的编辑模式下点击删除按钮时,会弹出一个删除按钮,要求确认.
我不希望这样.
我如何摆脱确认仪式?

我希望我的删除按钮像加号按钮一样工作.只需添加.只需删除.无需确认.至少不是当赌注很低时,就像在我的程序的一个问题中一样,删除将简单地将表标记为在编辑模式之外不可见.
捆绑ID
如果我去xcode项目并点击目标,我看到:Z24R84Q3QP.com.something.something.$ {PRODUCT_NAME:rfc1034identifier}
我不知道$ {PRODUCT_NAME:rfc1034identifier}会变成什么,也不知道它在哪里指定.
在facebook中有一个问号.如果我们在那里徘徊,我们会被告知:出于安全原因,Facebook需要知道我们的APP ID.
本教程没有说明任何内容.
https://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/authenticate/
我的一个朋友似乎也在使用旧API,我们导入Facebook.h或其他东西而不是框架.
我被困了.
我的意思是,这看起来像是一种矫枉过正.它已经有了cellForRowForIndexPath
一旦UITableViewSourceDelegate获得了单元格,它就可以通过计算单元格的高度轻松获得高度.
所以为什么?
switch语句似乎完全没用.它能做的任何事情都可以通过if和else来完成.
他们甚至可能编译成相同的代码.
那么为什么要费心呢?
break交换机中的语句label:让我发疯,这种格式让我想起了goto.
这是针对objective-c,c,C++的.我不确定vb.net是否有switch语句,但即使它确实如此,我必须忘记因为我从来没有使用它.
objective-c ×10
xcode4.5 ×4
ios ×2
uitableview ×2
bundle ×1
c ×1
c++ ×1
if-statement ×1
no-op ×1
nsdate ×1
php ×1
predicate ×1
protected ×1
uitabbar ×1
uitabbaritem ×1