我想在我的环境中设置这样的东西.
[[NSUserDefaultsController sharedUserDefaultsController] addObserver:self
forKeyPath:[@"values." stringByAppendingString: @"MyPreference"]
options:NSKeyValueObservingOptionNew
context:NULL];
Run Code Online (Sandbox Code Playgroud)
我是在Smalltalk环境中这样做的.特定的Smalltalk实际上可以通过objective-c运行时功能来驱动上述内容.问题在于那里的"自我"作为addObserver:论点.从Smalltalk,我可以创建一个C函数指针,它将作为Smalltalk的回调函数.但它无法提供Object对ObjectiveC环境的概念.
所以我试图弄清楚如何使用适当的API从某种对象中蹦床,导致我创建的函数指针被执行.我看过NSInvokation和朋友们,但没有一个用来包裹C函数指针.而且我不确定他们会翻译addObserver:forKeyPath:options:context:做正确的事情.
简而言之,问题是,如何使用现有的Cocoa对象来注册对Notification的响应,该响应是执行C函数指针而不编译任何新的objc代码.
我错过了什么?我将iPhone更新为5.1,现在Xcode不会在其上安装开发人员应用程序.这是来自组织者:
操作系统安装在用户的iPhone 5.1上(9B179)
Xcode支持iOS版本最新5.0(9A334)4.3 4.2
创建一个带有属性的 Triangle 类来存储每条边的长度。当三边长度不同时,三角形称为不等边形,当两条边长度相同时称为等腰三角形,当三边长度相同时称为等边三角形。
为您的类创建一个初始化程序,它接受三个参数并正确设置类属性。接下来,创建第二个初始值设定项以在三角形为等边三角形时使用。请记住,所有三个边的长度都相同,因此此方法应该只接受一个参数,但仍应设置所有三个属性。尝试先将此构造器编写为指定构造器,然后再将其转换为便利构造器。最后,我们需要一个带两个参数的等腰三角形的初始化器。想想你应该如何为你的参数设置外部名称,以明确两个方面将使用哪个值
这个问题让我非常困惑。我的问题是:我应该如何init在一个类中创建等腰线和不等边线?还是我应该创建另一个类?我需要帮助。我是斯威夫特的新手。这是我到目前为止所得到的。
class Triangle {
var sideA: Int
var sideB: Int
var sideC: Int
init(sideA: Int, sideB: Int, sideC: Int) {
self.sideA = sideA
self.sideB = sideB
self.sideC = sideC
}
convenience init(equilateralWithEdge edge:Int) {
self.init(sideA: edge, sideB: edge, sideC:edge)
}
}
Run Code Online (Sandbox Code Playgroud) iPhone开发新手 我有一个视图,其中包含一个包含UIImageView的UIScrollView.我在图像视图上添加了一个(双)轻击手势识别器,使警报框打开.出于某种原因,我确信我只是迟钝,它开了3次.
这是我的代码:
- (void)viewDidLoad {
scrollView.delegate = self;
UIImage* image = imageView.image;
imageView.bounds = CGRectMake(0, 0, image.size.width, image.size.height);
scrollView.contentSize = image.size;
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)];
tapGesture.numberOfTapsRequired = 2;
[imageView addGestureRecognizer:tapGesture];
[tapGesture release];
NSLog(@"LOADED");
[super viewDidLoad];
}
-(IBAction) handleTapGesture:(UIGestureRecognizer *) sender {
CGPoint tapPoint = [sender locationInView:imageView];
int tapX = (int) tapPoint.x;
int tapY = (int) tapPoint.y;
NSLog(@"TAPPED X:%d Y:%d", tapX, tapY);
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello" message:@"How are you?" delegate:nil cancelButtonTitle:@"I'm awesome." otherButtonTitles:nil];
[alert show]; …Run Code Online (Sandbox Code Playgroud) iphone objective-c gesture-recognition uitapgesturerecognizer
我正在为我的iPad应用程序进行应用内购买.我能够收到该productsRequest:didReceiveResponse方法,并收到产品数组.
当我向SKPaymentQueue添加SKPayment时出现问题.将产品添加到队列后,在该paymentQueue:updatedTransactions方法中,事务始终具有状态SKPaymentTransactionStateFailed.
我NSLog transaction.error,这是它返回的:
错误域= SKErrorDomain代码= 0"无法连接到iTunes Store"UserInfo = 0x339120 {NSLocalizedDescription =无法连接到iTunes Store}.
而且我也无法在"管理用户"中添加任何新的测试用户.
我们欢迎任何解决方案.谢谢
在我的appDelegate,我有一些规格当应用程序启动与来自ie邮件应用程序的文件.
当我启动我的应用程序时,一切正常.当我通过Mail中的文件启动应用程序时,应用程序崩溃了.不幸的是,我无法调试它,因为我无法模拟launchingOptions.此刻,我建立并运行,然后断开iPad,关闭我的应用程序,然后去邮件等...有没有办法调试?
Appdelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSURL *url = (NSURL *)[launchOptions valueForKey:UIApplicationLaunchOptionsURLKey];
IntroViewController *introViewController = (IntroViewController *)self.window.rootViewController;
if (url !=nil) {
if ([url isFileURL]) {
introViewController.fileUrl = url;
}
}
NSLog(@"%@",[url path]);
return YES;
}
Run Code Online (Sandbox Code Playgroud)
IntroViewController
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"Hello");
if (fileUrl != nil) {
IntroTableViewController* introTable = (IntroTableViewController *)segue.destinationViewController;
introTable.openedByURL = [fileUrl path];
TabBarController* tabBarController = (TabBarController *)segue.destinationViewController;
UINavigationController* navigationController = (UINavigationController *)[[tabBarController viewControllers] objectAtIndex:0];
TargetLSController* targetViewController = (TargetLSController *)[[navigationController …Run Code Online (Sandbox Code Playgroud) 如何隐藏MPmoviePlayerController的控制栏.
我只是想让电影全屏,并且没有任何内容.
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:dataPath ofType:@""]];
moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:url];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlaybackComplete:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayerController];
[self.view addSubview:moviePlayerController.view];
[moviePlayerController.view setFrame:CGRectMake(0, 0, 1024, 768)];
moviePlayerController.fullscreen = YES;
if ([moviePlayerController respondsToSelector:@selector(setAllowsAirPlay:)])
//Allow airplay ifavailabe
[moviePlayerController setAllowsAirPlay:YES];
[moviePlayerController play];
Run Code Online (Sandbox Code Playgroud) 我试图将图像保存到Sqlite,然后将图像加载到UIImageView.但它没有得到工作.我不会出错.这是我正在使用的代码.任何人都可以帮我解决这个问题.
- (void)saveImage {
sqlite3_stmt *compiledStmt;
if(sqlite3_open([dbPath UTF8String], &db)==SQLITE_OK){
const char *insertSQL="insert into Image(Image)values(?)";
if(sqlite3_prepare_v2(db,insertSQL, -1, &compiledStmt, NULL) == SQLITE_OK){
UIImage *image = [UIImage imageNamed:@"farmhouse.png"];
NSData *imageData=UIImagePNGRepresentation(image);
sqlite3_bind_blob(compiledStmt, 1, [imageData bytes], [imageData length], NULL);
sqlite3_step(compiledStmt);
char *errMsg;
sqlite3_exec(db, insertSQL, NULL,compiledStmt,&errMsg);
}
}
}
- (void)showImage {
sqlite3_stmt *compiledStmt;
if(sqlite3_open([dbPath UTF8String], &db)==SQLITE_OK){
const char *insertSQL = "Select Image from Image Where Sl.No = ?";
sqlite3_prepare_v2(db,insertSQL, -1, &compiledStmt, NULL);
if(sqlite3_prepare_v2(db,insertSQL, -1, &compiledStmt, NULL) == SQLITE_OK){
sqlite3_bind_int(compiledStmt, 1, 1);
if(SQLITE_DONE != sqlite3_step(compiledStmt)) { …Run Code Online (Sandbox Code Playgroud) 我喜欢在字段集中查找输入框的值,如下所示
fieldset> div >div> input[with class name 'inputclassname']
Run Code Online (Sandbox Code Playgroud)
我知道字段集的ID,并尝试使用其类名查找输入值,但我无法确定.value是未定义的。
我尝试过这样
$('#ID of fieldset').find($('.inputclassname')).val();
Run Code Online (Sandbox Code Playgroud)
它总是返回未定义状态。有什么建议么?
在Objective-C中我有一个类别:
@implementation NSObject (Entity)
+ (instancetype)entity{
Class cl = self.class;
NSObject *obj = [[cl alloc] init];
return obj;
}
@end
Run Code Online (Sandbox Code Playgroud)
我们假设有A和B类:
@interface A : NSObject
@end
@interface B : NSObject
@end
Run Code Online (Sandbox Code Playgroud)
然后我可以使用静态entity方法来创建像这样的对象:
NSObject *o = [NSObject entity]; // type of NSObject
A *a = [A entity]; // type of A
B *b = [B entity]; // type of B
Run Code Online (Sandbox Code Playgroud)
如何在Swift中编写该类别?我知道可以通过知道类型来创建一个对象let s = NSString.self; var str = s.init(),但是在这里我不知道这个类,它应该是self.self没有意义的东西,并且不能确定.
提前致谢
ios ×5
objective-c ×5
xcode ×3
ipad ×2
iphone ×2
swift ×2
cocoa ×1
cocoa-touch ×1
debugging ×1
initializer ×1
ios5 ×1
ios5.1 ×1
jquery ×1
macos ×1
smalltalk ×1