在运行我的应用程序时,我有时会得到内存警告.它并不总是发生在代码中的相同位置,但我怀疑它与从我的应用程序外部分配的内存有关; 即如果在后台运行的iPhone上有很多应用程序,我会提前得到内存警告,如果后台没有运行应用程序,我根本不会收到警告.
谢谢,奥哈德
我正在尝试为UINavigationController堆栈中的推送VC集设置BACK按钮.我使用以下代码,但它不起作用 - 我仍然将之前的VC名称显示为后退按钮标题.
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.title = @"VC Title";
UIBarButtonItem* myBackButton = [[UIBarButtonItem alloc]
initWithTitle:@"Back"
style:UIBarButtonItemStyleBordered
target:nil
action:nil];
self.navigationItem.backBarButtonItem = myBackButton;
}
Run Code Online (Sandbox Code Playgroud)
任何人?
有没有办法设置UIButton图像,BackgroundImage或ImageView属性内容模式属性?
我尝试过直接的方法(它当然不起作用......):
self.imageButton.imageView.contentMode = UIViewContentModeScaleAspectFit;
Run Code Online (Sandbox Code Playgroud)
有一个带图像的按钮很好,但如果没有办法正确设置它,它不是很方便...
这是我尝试习惯使用XCode4的一部分......
好的,所以我在XCode 4中创建了一个新项目,并使用了View Based Application模板; 我希望构建新的应用程序,因为Apple打算让我使用这个模板.
所以我正在使用从AppDelegate调用的自动创建的视图控制器(到目前为止我没有触及任何东西).现在,我想删除的状态栏.据我所知,我应该做的是进入视图XIB并在属性检查器中将状态栏字段设置为无(这是我以前用过的方式),但是当我运行应用程序时无情地状态栏仍在那里(!).
我也尝试在mainWindow.xib文件上执行相同的操作(将STSTUS BAR属性设置为None thing)并且应用程序运行此栏阻止我的视图...
任何人?

在我的应用程序中,我正在实施UINavigationController.有几个UIViewControllers被推入堆栈.
当我到达最后一个时,我希望(在用户操作时)弹出除第一个之外的所有UIViewControllers UIViewController.我怎么做?
我知道如何弹出最后一个,但我如何指示所有以前的那些也消失了?
我在我的一个方法中定义了一个int值:
int value = [self someMethodThatGetsAnINT];
后来我有一些"ifs"检查这个值.
我怎么表达:if(value == nil)?
当我尝试这样直观的代码编写时,我得到一个警告说:
语义问题:指针和整数之间的比较('int'和'void*')
关于哪个代码签名标识我应该在构建配置中使用哪个场景我都不清楚,如果有人能用最简单的方式解释它,我会很高兴.
这就是我所知道的:
我在Provisioning Portal中创建并在我的应用程序中实现开发配置文件和分发配置文件.

然后我根据不同的配置文件分配Project >> Build Settings >> Code Signing:

这是第一个问题:发布和发布有什么区别?哪一个应连接到Developer配置文件,哪一个应连接到Distribution配置文件?

我需要通过选择以下代码签名标识来定义构建配置,这有5个不同的步骤:

这是大问题...... 在哪种情况下我应该选择哪个代码签名标识?
我总是在同样的2台设备上运行应用程序:我的iPhone和iPad; 两者都在Provisioning Portal中定义并设置到配置文件中.我只想确保运行它可以在Simulator和Device上进行测试,然后再构建应用程序以便上传到App Store.
任何协助/指示将不胜感激.
是否有涉及的之间的差异Object与类型"多态"的方式id不是NSObject *?
以什么方式:
NSString* aString = @"Hello";
id anObj = aString;
Run Code Online (Sandbox Code Playgroud)
不同于:
NSString* aString = @"Hello";
NSObject* anObj = aString;
Run Code Online (Sandbox Code Playgroud) 我熟悉__block在块中使变量"可赋值" 的语句.但是我发现当使用一些使用块作为方法中的参数的Objective-C特性时,一些变量是可分配的,即使它们没有用这个__block语句声明.
以下是2个代码:
[UIView animateWithDuration:2 animations:^
{
self.animatedView.backgroundColor = [UIColor blueColor];
self.animatedView.center = CGPointMake(100, 100);
}];
Run Code Online (Sandbox Code Playgroud)
(animatedView是一个与IBOutlet连接的简单UIView).
int myInt = 10;
NSMutableString* mString = [NSMutableString stringWithString:@"Mutable Hello"];
NSString* imString = @"Imutable Hello";
void (^myBlock)(void) = ^
{
[mString appendString:@" Block"]; //working
imString = @"Imutable Hello Block"; //error
myInt = 11; //error
};
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么我可以为UIView实例属性赋值?
我不是在处理一个Object并改变它,就像我的mString一样.
我希望'center'属性的行为类似于myInt,因为它是直接访问的C结构,而不是指向对象的指针.
我希望'backgroundColor'的行为类似于我的imString,因为它是一个指向一个新对象的对象的指针,不是吗?
我在文档中找不到令人满意的解释...如果有人可以提供一个,或者解决我的问题,我将不胜感激.
block objective-c variable-assignment ios objective-c-blocks
我正在尝试从prepareForSegue方法中的第一个VC更新第二个VC中的Label.
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
MYSecondViewController* secondVC = (MYSecondViewController*)segue.destinationViewController;
secondVC.titleLabel.text = @"First VC Says: You Are Second!!"; //This doesn't work
secondVC.dataPassString = @"First VC Says: You Are Second!!"; //This works + secondVC viewDidLoad
}
Run Code Online (Sandbox Code Playgroud)
如果我直接更新Label,它就不起作用.如果我更新一个字符串属性,然后将其分配给第二个VC viewDidLoad中的标签,它确实有效.
这是否意味着在prepareForSegue调用后第二个VC viewDidLoad方法尚未被调用?
是否调用了一些init方法(因此NSString对象可以通过)?如果是的话,哪一个?
有没有办法从第一个VC更新第二个VC中的IBOutlets?
ios ×10
objective-c ×2
back-button ×1
block ×1
code-signing ×1
contentmode ×1
iboutlet ×1
if-statement ×1
int ×1
memory ×1
nsobject ×1
null ×1
properties ×1
release ×1
statusbar ×1
templates ×1
testing ×1
uibutton ×1
uiimageview ×1
view ×1
warnings ×1
xcode4 ×1