我希望在用户的iPhone上获取当前的小时和分钟,以便在不显示状态栏的应用中显示.有一个简单的方法吗?
在过去的几周里,作为iPhone开发和Objective-C的新手,我在CF和NS框架之间遇到了许多关于"免费桥接"的提及.
一个特定的例子是CFStream和NSStream.
是否存在记录所有这些桥梁以及如何使用它们的资源?它是否就像从一种类型的对象转换到另一种类型一样简单?
我问,目前我正在使用iPhone SDK中不严格允许的NSStream调用,并了解我应该使用CFStream调用.
编辑:关于TFB如何工作的有用文章
我使用Apple包装器作为钥匙串,并尝试在其上保存一个项目(在模拟器中运行,ios 4.1).
我之前没有使用过钥匙扣.
我收到此错误:
无法添加钥匙串项目.错误 - 25299
在KeychainItemWrapper.m第304行:
// No previous item found; add the new one.
result = SecItemAdd((CFDictionaryRef)[self dictionaryToSecItemFormat:keychainItemData], NULL);
NSAssert( result == noErr, @"Couldn't add the Keychain Item." );
Run Code Online (Sandbox Code Playgroud)
这是我保存的方式:
- (void) saveKey:(NSString *)key value:(NSString *)value {
KeychainItemWrapper *keyItem = [[KeychainItemWrapper alloc] initWithIdentifier:key accessGroup:nil];
[keyItem setObject:value forKey:(id)kSecValueData];
[keyItem release];
}
Run Code Online (Sandbox Code Playgroud)
这是api试图保存的值:
<CFBasicHash 0x7231f60 [0x320d380]>{type = mutable dict, count = 5,
entries =>
2 : <CFString 0x2e6eb98 [0x320d380]>{contents = "labl"} = <CFString 0x2fb018 [0x320d380]>{contents = ""} …Run Code Online (Sandbox Code Playgroud) 在这里,我试图计算两个日期之间的小时数.当我运行应用程序时,它崩溃了.你能告诉我这段代码中的错误吗?
NSString *lastViewedString = @"2012-04-25 06:13:21 +0000";
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat: @"yyyy-MM-dd HH:mm:ss zzz"];
NSDate *lastViewed = [[dateFormatter dateFromString:lastViewedString] retain];
NSDate *now = [NSDate date];
NSLog(@"lastViewed: %@", lastViewed); //2012-04-25 06:13:21 +0000
NSLog(@"now: %@", now); //2012-04-25 07:00:30 +0000
NSTimeInterval distanceBetweenDates = [now timeIntervalSinceDate:lastViewed];
double secondsInAnHour = 3600;
NSInteger hoursBetweenDates = distanceBetweenDates / secondsInAnHour;
NSLog(@"hoursBetweenDates: %@", hoursBetweenDates);
Run Code Online (Sandbox Code Playgroud) 我刚刚开始使用Apple Watch.我发现了" Five Minute Watchkit "中的说明,即让iOS应用程序和监视工具包应用程序都在模拟器中运行,并且两个进程都连接到LLDB调试器.
我所做的是启动并退出iOS应用程序以在SIM中安装当前版本.然后我切换到watchKit方案并启动它,它在手表模拟器上显示我的手表应用程序UI.
然后我在模拟器中启动相应的iOS应用程序,然后用户在Xcode菜单中"附加到进程",将调试器附加到正在运行的iOS应用程序.
这有效.我可以在监视工具包InterfaceController或我的iOS应用程序中设置断点,调试器会在应用程序中断.
但是,我没有在我的iOS应用程序的调试控制台中看到NSLog()语句.(我确实看到来自WatchKit扩展代码的日志语句.)如果我在我的iOS应用程序中设置断点,它确实会在该断点处停止.我假设缺少来自NSLog的控制台输出有关SOMETHING与附加到sim上的正在运行的进程而不是从Xcode启动它,但我不知道那是什么.
(顺便说一句,将动作附加到从断点调用NSLog的断点也不会显示,但是"日志消息"调试器命令会显示.有人有任何见解吗?)
编辑:iOS应用程序中的代码似乎并不重要.就我而言,这是一个简单的IBAction,它附加在iOS应用程序故事板中的按钮上:
- (IBAction)buttonAction:(UIButton *)sender;
{
NSLog(@"Button clicked on iPhone");
}
Run Code Online (Sandbox Code Playgroud)
我可以在NSLog语句上设置断点.调试器在该行停止,但我没有在调试控制台中看到日志语句.
我有一个实例,MKMapView并希望使用自定义注释图标,而不是MKPinAnnotationView提供的标准图钉图标.所以,我已经设置了一个名为CustomMapAnnotation的MKAnnotationView的子类,并且重写-(void)drawRect:了绘制CGImage.这有效.
当我尝试复制.animatesDropMKPinAnnotationView提供的功能时出现问题; 当注释被添加到MKMapView实例时,我希望我的图标能够逐渐显示,从上到下以及从左到右顺序显示.
这是 - (void)drawRect:用于CustomMapAnnotation,当你只绘制UIImage(这是第二行所做的)时它可以工作:
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
[((Incident *)self.annotation).smallIcon drawInRect:rect];
if (newAnnotation) {
[self animateDrop];
newAnnotation = NO;
}
}
Run Code Online (Sandbox Code Playgroud)
添加animateDrop方法时出现问题:
-(void)animateDrop {
CGContextRef myContext = UIGraphicsGetCurrentContext();
CGPoint finalPos = self.center;
CGPoint startPos = CGPointMake(self.center.x, self.center.y-480.0);
self.layer.position = startPos;
CABasicAnimation *theAnimation;
theAnimation=[CABasicAnimation animationWithKeyPath:@"position"];
theAnimation.fromValue=[NSValue valueWithCGPoint:startPos];
theAnimation.toValue=[NSValue valueWithCGPoint:finalPos];
theAnimation.removedOnCompletion = NO;
theAnimation.fillMode = kCAFillModeForwards;
theAnimation.delegate = self;
theAnimation.beginTime = 5.0 * (self.center.x/320.0);
theAnimation.duration = 1.0;
[self.layer addAnimation:theAnimation …Run Code Online (Sandbox Code Playgroud) 在这段代码中突然发生了两个错误 - 类'test_coredataAppDelegate'的重复接口声明 - 重新定义'struct test_coredataAppDelegate'
#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>
@interface test_coredataAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> {
///////////////////New parts /////////////////////////
NSManagedObjectModel *managedObjectModel;
NSManagedObjectContext *managedObjectContext;
NSPersistentStoreCoordinator *persistentStoreCoordinator;
//////////////////////////////////////////////
UIWindow *window;
UITabBarController *tabBarController;
}
@property (nonatomic, retain, readonly) NSManagedObjectModel *managedObjectModel;
@property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain, readonly) NSPersistentStoreCoordinator *persistentStoreCoordinator;
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
@end
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题
最好的祝福
我是一个新手iOS程序员,我有一个问题.
我目前正在研究iOS核心数据,我的问题是我想通过获取a的值将数据插入到数据库的布尔属性中UISwitch.
问题是我不知道我必须调用什么方法(例如.text对UITextField做同样的事情).我做了一个小谷歌搜索,但没有结果.这是一些代码:
[newContact setValue:howMany.text forKey:@"quantity"];
[newContact setValue:important.??? forKey:@"important"];
Run Code Online (Sandbox Code Playgroud)
howmany是一个文本域,重要的是UISwitch
在Xcode中,您可以在数据模型检查器中为实体添加"索引".

对于屏幕截图,我做了两次"添加",因此"逗号,分隔,属性"只是默认值.
究竟是什么指数?
它们与索引属性有关吗?如果它们在此检查器中指定索引和为单个属性选择"索引"之间有什么区别?
苹果在消息应用程序中使用它今天的消息今天上午11:45昨天上午11:45
我在苹果开发者网站上看到它
要为日期格式化程序指定自定义固定格式,请使用setDateFormat:.格式字符串使用Unicode技术标准#35中的格式模式.该标准的版本因操作系统的发布而异:
日历字段
fields(别名|(field*,special*))> field(别名|(displayName?,relative*,special*))>
可以为日历字段的名称(日历的元素,如日,月,年,小时等)提供翻译,并为这些字段的相对值提供翻译(例如,相对值为-1的日期为"昨天").如果对于相对值,在特定语言中没有方便的,习惯性的单词或短语,则应省略.
如何在Xcode中使用它?
ios ×6
iphone ×6
objective-c ×6
core-data ×3
xcode ×3
cocoa-touch ×2
nsdate ×2
apple-watch ×1
ios4 ×1
keychain ×1
macos ×1
mapkit ×1
uiswitch ×1