私はここで何をしましたか?メソッドのパラメーターは型なしにできますか?
正常に動作する最近のプロジェクトでは、アプリは既にストアにあります-これまでのところ問題はありません.hファイルで次のことを行いました:
@property (strong, nonatomic) NSManagedObject *myPerson;
- (HKPersonPicker*) initWithPerson:person;
- (HKPersonPicker*) initWithPerson:person delegate:(id <HKPersonPickerDelegate>)delegate;
私はこのようにするつもりでしたが、しませんでした:
- (HKPersonPicker*) initWithPerson:(NSManagedObject*)person;
- (HKPersonPicker*) initWithPerson:(NSManagedObject*)person delegate:(id <HKPersonPickerDelegate>)delegate;
.m ファイルの対応する部分:
- (HKPersonPicker*) initWithPerson:person
{
self = [super init];
if(self){
self.myPerson = person;
}
return (self);
}
- (HKPersonPicker*) initWithPerson:person delegate:(id <HKPersonPickerDelegate>)delegate
{
self = [self initWithPerson:person];
if(self){
self.delegate = delegate;
}
return (self);
}
ご覧のとおり、この person オブジェクトに対して特別なことは何もしていません。プロパティ myPerson に割り当てただけです。オブジェクトのメソッドを呼び出したり、そのデータにアクセスしたりしなかったので、コンパイラはそのオブジェクトについて何も知る必要がありませんでした。しかし、コンパイラの視点からはどうなるのでしょうか? タイプID? ただ何か?デフォルトのタイプはありますか?
ご覧のとおり、私には実際の問題はありません。ただ興味があるだけ。この質問が SO ルールに違反しないことを願っています。