0

ジェイルブレイクの微調整を作成する方法を学んでいます。

これが簡単な質問であることを願っています。テオスを使用しています。

私は次の設定をしています: -

OneView.h

#import <UIKit/UIKit.h>

@interface OneView : UIViewController

@end

=====================================

OneView.m

#import "OneView.h"

@interface OneView ()

@end

@implementation OneView

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self setOpaque:NO];
    }
    return self;
}

@end

=====================================

Tweak.xm

#import <UIKit/UIKit.h>
#include "OneView.h"

//この関数は機能し、正常にコンパイルされます

%new
-(void)createView:() {
        UIView *view11 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 480, 272)];  
        view11.backgroundColor = [UIColor redColor];  
        [self.view addSubview:view11];
}
%end

//これは機能せず、コンパイル時にエラーが発生します。

%new 
-(void)createOneView:() {
        OneView *view11 = [[OneView alloc] initWithFrame:CGRectMake(0, 0, 480, 272)];  
        view11.backgroundColor = [UIColor redColor];  
        [self.view addSubview:view11];
}
%end

=====================================

エラー

 Preprocessing Tweak.xm...
 Compiling Tweak.xm...
Tweak.xm:144:44: error: 

'OneView' may not respond to 'initWithFrame:' [-Werror]

        OneView *view11 = [[OneView alloc] initWithFrame:CGRectMake(0, 0, 480, 
272)];  
                           ~~~~~~~~~~~~~~~ ^
Tweak.xm:145:16: error: property 'backgroundColor' not found on object of type 'OneView *'
        view11.backgroundColor = [UIColor redColor];  
               ^
Tweak.xm:146:31: error: cannot initialize a parameter of type 'UIView *' with an lvalue of type 'OneView *'
        [self.view addSubview:view11];

It does not like initWithFrame! is this something to do with headers !

ありがとう

=========================

Error when inheriting UIView

bash-3.2# make package
Making all for tweak OneView...
 Preprocessing Tweak.xm...
 Compiling Tweak.xm...
 Linking tweak OneCall...
Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_OneCallView", referenced from:
      objc-class-ref in Tweak.xm.249b7f24.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [obj/OneView.dylib.ba964c90.unsigned] Error 1
make[1]: *** [internal-library-all_] Error 2
make: *** [OneView.all.tweak.variables] Error 2

=========================

UIViewController 継承時のエラー (更新)

        OneView *view11 = [[OneView alloc] initWithFrame:CGRectMake(0, 0, 480, 272)];  
        view11.view.backgroundColor = [UIColor redColor];  
        [self.view addSubview:view11];

「OneView」が「initWithFrame:」に応答しない場合がある [-Werror]

        OneView *view11 = [[OneView alloc] initWithFrame:CGRectMake(0, 0, 480, 
272)];  
4

2 に答える 2

1

OneView を UIViewController のサブクラスにしました。

@interface OneView : UIViewController

ただし、UIView のサブクラスにする必要があります。

@interface OneView : UIView
于 2015-02-25T00:01:41.753 に答える
0

createOneViewは予約済みのメソッド名であり、再定義できません。その名前を、プログラマであるあなたにとって意味のある別の名前に変更するだけで問題ありません。

于 2015-02-25T03:26:10.633 に答える