我有一个应用程序在较旧的项目中工作正常(不使用ARC,并在Xcode 4.0中使用iOS 4.2编写.
我试图将此应用程序移植到使用ARC和故事板与Xcode 4.2和iOS 5.
我已经移植了所有内容并修复了由保留,释放,解除分配等引起的所有错误.该项目现在构建良好.我还在新项目中重建了我的Core Data模型并重建了我的模型子类.
发生错误的地方是我尝试在后台线程中解析XML文件.该文件是项目的本地文件.我为执行解析的每个NSOperation类NSLog初始化器(其中有四个).我到了应用程序的那一点,当我将操作添加到队列时发生错误.
这是我在AppDelegate中启动操作的代码:
#import "AppDelegate.h"
#import "ACHPhonebook.h"
@implementation AppDelegate
@synthesize window = _window;
@synthesize managedObjectContext = __managedObjectContext;
@synthesize managedObjectModel = __managedObjectModel;
@synthesize persistentStoreCoordinator = __persistentStoreCoordinator;
@synthesize parseQueue;
@synthesize parseOpAD, parseOpEK, parseOpLR, parseOpSZ;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"ACHPhonebook" inManagedObjectContext:self.managedObjectContext];
[request setEntity:entity];
NSError *error = nil;
NSUInteger count = [self.managedObjectContext countForFetchRequest:request error:&error];
NSLog(@"total CD count = %d", count);
if(
getenv("NSZombieEnabled") || getenv("NSAutoreleaseFreedObjectCheckEnabled")
) …Run Code Online (Sandbox Code Playgroud) 我目前正在为我的第一款iPhone游戏设计结构并遇到问题.目前,我有一个'MenuViewController',它允许你选择要播放的关卡和一个'LevelViewController'来播放关卡.
UIButton'MenuViewController'上的A 触发了'LevelViewController'的模态segue.
UIButton'LevelViewController'上的A 触发以下方法返回'MenuViewController':
-(IBAction)back:(id)sender //complete
{
[self dismissModalViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)
问题是,我UILabel在菜单页面上打印了一个玩家拥有的总点数.每当我从关卡中返回菜单时,我希望此标签自动更新.目前,标签是在"MenuViewController"中以编程方式定义的:
-(void)viewDidLoad {
[super viewDidLoad];
CGRect pointsFrame = CGRectMake(100,45,120,20);
UILabel *pointsLabel = [[UILabel alloc] initWithFrame:pointsFrame];
[pointsLabel setText:[NSString stringWithFormat:@"Points: %i", self.playerPoints]];
[self.pointsLabel setTag:-100]; //pointsLabel tag is -100 for id purposes
}
Run Code Online (Sandbox Code Playgroud)
self.playerPoints是MenuViewController的整数属性
有没有办法可以更新标签?提前谢谢!
我有一个日期选择器,我想只有一行有3个选项:当天,前一天和前一天.
你能帮帮我吗?
我的问题是,如何在一天后和前一天添加"当天"?
我试图找出当键盘发生变化时如何得到通知.我想要做的是为类型4和5的键盘(NumberPad和PhonePad)添加一个DONE按钮,一切正常,除非我使用默认KB类型从TextField转换,KeyboardDidAppear不是通知被解雇了
这是我得到的:
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardDidShow:)
name:UIKeyboardDidShowNotification
object:nil];
}
Run Code Online (Sandbox Code Playgroud)
然后我为当前的KB类型和正在编辑的当前TextField添加了一个Property:
#pragma mark - Delegate Methods
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
self.currentKBType = textField.keyboardType;
self.curTextField = textField;
return YES;
}
Run Code Online (Sandbox Code Playgroud)
然后,我根据当前的KB类型决定是否添加DONE按钮:
- (void)keyboardDidShow:(NSNotification *)note {
if (self.currentKBType == 4 || self.currentKBType == 5) {
[self addButtonToKeyboard];
}
}
Run Code Online (Sandbox Code Playgroud)
问题是在显示键盘时会触发通知,但在更改时不会触发(从一个TextField转换到指定不同KB类型的另一个TextField).
有什么建议?我错过了什么吗?
我试图复制当前在VB中实现的功能.我需要做的是将日期转换为长整数,然后将其转换为字符串.我还需要将一个长整数转换为该整数的HEX值,然后将其转换为字符串.
这是我在VB中使用的代码.
If dteCreated <> #12:00:00 AM# Then
strHash = CStr(CLng(dteCreated))
If InStr(1, strHash, ".", vbTextCompare) > 0 Then
strHash = Left(strHash, InStr(1, strHash, ".", 1) - 1) & "_" & Mid(strHash, InStr(1, strHash, ".", 1) + 1)
Else
strHash = strHash & "_00000"
End If
strHash = strHash & "_" & CStr(Hex(intereq))
Run Code Online (Sandbox Code Playgroud)
这两个变量是dteCreated(Date)和intereq(Long).这构建的是在我们的服务器上解码的散列查询字符串.
任何人都可以帮助我在Objective-C中使用的方法来获得相同的功能吗?
我有两台MacBook Airs(一台是最新版本).在他们两个上我都尝试通过Mac App Store安装新版本的XCode.它们都下载并指示它已安装,但XCode仍然报告4.2.1并且我无法将应用程序部署到我的手机,因为它运行5.1并且XCode缺少SDK.
其他人有类似问题吗?
ios ×5
objective-c ×4
xcode ×2
cocoa-touch ×1
datepicker ×1
ios5 ×1
macos ×1
nsdate ×1
osx-lion ×1
uikeyboard ×1
uilabel ×1
vb6 ×1